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

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

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

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

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

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

653270 次浏览

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

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

选项是:

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

参见正则表达式引用

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

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

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

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

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

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

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

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