我想匹配由至少3个字符组成的字符串“A SENTENCE OF UPPER CASE” 我试过了
[A-Z\s]+{3,}
但它也匹配像“A”“AB”
这样的字符串答案 0 :(得分:1)
您不需要+
,这意味着" 1或更多"当你还要{3, }
表示" 3或更多"。这会使RegEx引擎混淆,可能是你的问题。
正则表达式应为[A-Z\s]{3,}
答案 1 :(得分:0)
我想匹配字符串" A SENTENCE OF UPPER CASE"由至少3个字符组成
使用\s
的代码我假设你也想忽略它们之间的空格。所以,这似乎是你正在寻找的正则表达式:
([A-Z]\s*){3,}
请记住从生成的捕获组中捕获group 0
(所有匹配项)。另外,在此在线正则表达式引擎上按照您的意愿进行测试:
但它也匹配" A"等字符串。 " AB"
这没有意义,因为你的正则表达式[A-Z\s]+{3,}
被破坏了,因为+
运算符不能用{3,}
运算符限定,即它甚至不应该编译,所以我这样做没有看到Java正则表达式引擎如何生成这些匹配。