正则expression式将字符数限制为10

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

pattern: /^[az]{0,10}+$/ 

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

 pattern: /^[az]+$/ 

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

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

 /^[az]{0,10}$/ 

选项是:

  • {3}恰好3次出现;
  • {6,}至less6次出现;
  • {2,5}发生2至5次。

请参阅正则expression式参考 。

你的表情在大括号之后有一个+号,因此是错误的。

/^[az]{0,10}$/应该可以工作。 /^[az]{1,10}$/如果你想匹配至less一个字符,比如/^[az]+$/ does。

将贪婪匹配添加到string的末尾可能会有好处,所以您可以接受大于10的string,正则expression式只会返回前10个字符。 /^[a-z0-9]{0,10}$?/

它非常依赖于你正在使用的程序。 不同的程序( Emacs , vi , sed和Perl )使用稍微不同的正则expression式。 在这种情况下,我会说在第一种模式中,最后一个“+”应该被删除。

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

给出具有限制的精确匹配计数的计数