我试图写一个正则表达式,只允许小写字母和最多10个字符。到目前为止,我看到的是这样的:

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

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

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

但是我需要将字符数限制在10个。


当前回答

grep '^[0-9]\{1,16\}' | wc -l

给出与限制精确匹配的计数

其他回答

grep '^[0-9]\{1,16\}' | wc -l

给出与限制精确匹配的计数

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

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

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

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

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

选项是:

{3}恰好3次; {6,}至少出现6次; {,4}最多出现4次; {2,5} 2到5次。

请参阅正则表达式参考。

你的表达式在右花括号后面加了一个+,因此出现了错误。