我正在调用一个函数来确定输入字符串是否仅包含 2个仅由字母组成的单词。很好因此,“ 123套房”将失败,而“疯狂女孩”将通过。但是,我需要确保连续的大写字母不会通过,例如“ AAA Bird”,我只想在整个字符串中允许两个大写。 以下是我目前所拥有的。任何建议将不胜感激。我对正则表达式非常陌生。
else if (line.matches("\\s*[A-Za-z]+\\s+[A-Za-z]+\\s*"))
{
getName();
}
答案 0 :(得分:0)
您可以使用此正则表达式:
^(?!(.*[A-Z]){3,})[a-zA-Z]+ [a-zA-Z]+$
它使用否定前瞻来确保字符串中最多包含2个大写字符,然后匹配一个字母序列,一个空格,一个字母序列。
答案 1 :(得分:0)
我建议将此正则表达式用于unicode字母:
^(?!(?:.*\p{Lu}){3,})\p{L}+\p{Zs}\p{L}+$