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

171 regex

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

pattern: /^[a-z]{0,10}+$/ 
Run Code Online (Sandbox Code Playgroud)

这不起作用或编译.我有一个只允许使用小写字母的工作:

pattern: /^[a-z]+$/ 
Run Code Online (Sandbox Code Playgroud)

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

cle*_*tus 331

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

/^[a-z]{0,10}$/
Run Code Online (Sandbox Code Playgroud)

选项是:

  • {3}恰好3次出现;
  • {6,}至少发生6次;
  • {2,5}发生2到5次.

请参阅正则表达式参考.

你的表达式在结束大括号之后有一个+,因此错误.

  • 注意:请确保不要在 `,` 和 `10` 之间添加空格(`{0, 10}` 不起作用)。 (2认同)

Jor*_*ren 10

/^[a-z]{0,10}$/应该管用./^[a-z]{1,10}$/如果你想匹配至少一个角色,就像/^[a-z]+$/.


jfa*_*ell 9

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


Die*_*lla 8

它非常依赖于您正在使用的程序.不同的程序(Emacs,vi,sedPerl)使用略有不同的正则表达式.在这种情况下,我会说在第一个模式中,应删除最后一个"+".


小智 8

pattern: /[\w\W]{1,10}/g
Run Code Online (Sandbox Code Playgroud)

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

  • 这允许出现不需要的空白。 (2认同)

小智 7

grep '^[0-9]\{1,16\}' | wc -l
Run Code Online (Sandbox Code Playgroud)

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