ChatGPT解决这个技术问题 Extra ChatGPT

正则表达式将字符数限制为 10

我正在尝试编写一个只允许小写字母和最多 10 个字符的 regular expression。我到目前为止看起来像这样:

pattern: /^[a-z]{0,10}+$/ 

这不起作用或编译。我有一个只允许小写字母的工作,它是这样的:

pattern: /^[a-z]+$/ 

但我需要将字符数限制为 10。

{} 和 + 做同样的事情(计数),因此它们是多余的,因此是错误的。
您应该从 /^[az]{0,10}+$/ 中删除“+”。应该是 /^[az]{0,10}$/
请注意,模式 ^[a-z]{0,10}+$ 可以在某些语言上编译,其中一些值得注意的是 Java、Perl (5.10+)、PHP、Ruby (1.9+)。有关详细信息,请参阅 this page
另请参阅通过前瞻的通用解决方案:Restricting Character length in Regular expression

L
LMD

您可以使用花括号来控制出现次数。例如,这意味着 0 到 10:

/^[a-z]{0,10}$/

选项包括:

{3} 恰好出现 3 次;

{6,} 至少出现 6 次;

{,4} 最多出现 4 次;

{2,5} 2 到 5 次出现。

请参阅 regular expression reference

您的表达式在右大括号后有一个 +,因此出现了错误。


在带有 ember 的 chrome 开发工具中,我必须省略开头的 ^ 以仅匹配名称为 12345678 的请求,并且我必须包含 $ 符号
注意:请务必不要在 ,10 之间添加空格({0, 10} 不起作用)。
J
Joren

/^[a-z]{0,10}$/ 应该可以工作。 /^[a-z]{1,10}$/ 如果您想匹配至少一个字符,就像 /^[a-z]+$/ 一样。


j
jfarrell

在字符串末尾添加贪婪匹配可能是有益的,因此您可以接受字符串>大于 10 并且正则表达式只会返回前 10 个字符。 /^[a-z0-9]{0,10}$?/


r
rink.attendant.6
grep '^[0-9]\{1,16\}' | wc -l

给出具有完全匹配计数的计数与限制


P
Peter Mortensen

这在很大程度上取决于您使用的程序。不同的程序(EmacsvisedPerl)使用略有不同的正则表达式。在这种情况下,我会说在第一个模式中,最后一个“+”应该被删除。


R
Rochdi Belhirch
pattern: /[\w\W]{1,10}/g

我在我的案例中使用了这个表达式,它包含了文本中所有可用的字符。


这允许没有要求的空白。