我想查找是否所有基於大小寫的字符在非基礎字符後面。即非基於案例的字符是大寫和所有其他基於案例的字符是小寫使用string.matches的正則表達式總是返回false雖然我期待真
例如:什麼是你的測試
我所定義的正則表達式爲:\b[A-Z]
String alphaCheck="What Is Your Test";
System.out.println(alphaCheck.matches("\b[A-Z]"));
我想查找是否所有基於大小寫的字符在非基礎字符後面。即非基於案例的字符是大寫和所有其他基於案例的字符是小寫使用string.matches的正則表達式總是返回false雖然我期待真
例如:什麼是你的測試
我所定義的正則表達式爲:\b[A-Z]
String alphaCheck="What Is Your Test";
System.out.println(alphaCheck.matches("\b[A-Z]"));
([A-Z][a-z]+(\\s+|$))+
會爲你工作:
public static void main(String[] args) {
String s = "What Is Your Test";
System.out.println(s.matches("([A-Z][a-z]+(\\s+|$))+"));
String s2 = "What is";
System.out.println(s2.matches("([A-Z][a-z]+(\\s+|$))+"));
}
O/P:
true
false
正如你可以用消極的方式,檢查是否有任何不適合您的標準另一種選擇:
String alphaCheck="What Is Your Test";
System.out.println(!alphaCheck.matches(".*\\b[a-z]+.*"));
alphaCheck="What Is Your test";
System.out.println(!alphaCheck.matches(".*\\b[a-z]+.*"));
alphaCheck="what Is Your Test";
System.out.println(!alphaCheck.matches(".*\\b[a-z]+.*"));
O/P:
true
false
false
您只需要將String#matches
返回爲表示它是否正確。
非常感謝你:-) –
有多個單詞邊界,你想要比較它的'String'必須與表達式完全匹配。我認爲你最好使用'Matcher'和''find'功能。否則你的表達式必須是'「。* \ b [AZ]。*」'爲了表達式匹配你的'String'的其餘部分。 – SomeJavaGuy
我不太瞭解你的問題 – TheLostMind
這裏是我的代碼System.out .println(alphaCheck.matches( 「\ b [AZ]」)); –