我正在尝试使用这个正则表达式:
if (input.matches("(^(?=.*[A-Z]{2}"))
但这不适合我。请帮忙。
答案 0 :(得分:4)
您正在使用的正则表达式:
"^(?=.*[A-Z]{2})" //added the unmatched paranthesis
将使用预测查看字符串中A-Z
范围内范围内是否有两个连续字符。
要检查前两个是否在该范围内,您可以这样做:
input.matches("^[A-Z]{2}.*")
请注意,您需要.*
,因为matches()
必须与整个input
字符串匹配才能返回true。
答案 1 :(得分:2)
private boolean isAlpha(char c) {
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
}
private boolean startsWith2Alpha(String s) {
return (s.length() >= 2) && isAlpha(s.charAt(0)) && isAlpha(s.charAt(1));
}
没有正则表达式会轻松得多。
答案 2 :(得分:1)
if(input.matches("^[a-zA-Z]{2}")
答案 3 :(得分:0)
您是否关心非英语语言支持? input.matches("\\p{L}{2}.*")
会做到这一点。
答案 4 :(得分:0)
地狱耶!您输入的正则表达式不起作用,因为它不是标准的。它应该是A和O字符。