我写了一个 正则表达式,它匹配任意数量的字母,字母之间有任意数量的单个空格。我希望该正则表达式也强制执行最小和最大字符数,但我不确定该怎么做(或者是否可能)。
我的正则表达式是:
[A-Za-z](\s?[A-Za-z])+
我意识到它只匹配一个空格周围的两组字母,所以我稍微修改了一下以解决这个问题。原来的问题仍然是一样的。
有没有办法强制至少三个字符和最多 30 个字符?
原文由 CorayThan 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答749 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
是的
就像
+
意味着你可以使用一个或多个{3,30}
来匹配3到30例如
[a-z]{3,30}
匹配 3 到 30 个小写字母来自 Pattern 类的文档
([a-zA-Z]\s){2,29}[a-zA-Z]
([a-zA-Z]\s){1,14}[a-zA-Z]
”`
如果尾随空格是可选的,您可以将
\s?
添加到最后一个。这些都在 RegexPlanet 上进行了测试如果您希望整个字符串的长度在 3 到 30 个字符之间,您可以使用先行添加
(?=^.{3,30}$)
在 RegExp 的开头并删除其他大小限制综上所述,老实说,我可能只是测试
String
的.length
属性。它更具可读性。