【发布时间】:2013-02-23 16:10:55
【问题描述】:
我写了一个regular expression,它匹配任意数量的字母,字母之间有任意数量的单个空格。我希望该正则表达式也强制执行最小和最大字符数,但我不确定如何执行此操作(或者是否可能)。
我的正则表达式是:
[A-Za-z](\s?[A-Za-z])+
我意识到它只匹配围绕一个空格的两组字母,所以我稍微修改了它以解决这个问题。原来的问题还是一样。
有没有办法强制最少三个字符,最多 30 个字符?
【问题讨论】:
-
任意数量的字母和任意数量的单个空格,最少 3 个字符,最多 30 个字符?听起来
[A-Za-z ]{3,30}会完成这项工作,因为它符合描述。 -
@nhahtdh 这将允许行中有多个空格。似乎没有优雅的解决方案。
-
如果您陈述所有的要求,这是可能的。我只能从您的正则表达式中看到您对连续多个空格的要求,而不是您的描述。
-
"字母之间有任意数量的单个空格。"这意味着可以有任意数量的空格,只要它们是“单个空格”,即连续不超过一个空格。我试图明确说明这一要求,但我想这很难描述。
-
这看起来像是一个规范的问题,但它已经相当晚了(2013 年),5 年了。