簡體   English   中英

盡管我期望使用string.matches的正則表達式始終返回false

[英]Regular expression using string.matches always returning false though i am expecting true

我正在嘗試查找非基本字符后面的字符串中是否所有基於大小寫的字符。 即,非基於大小寫的字符為大寫,所有其他基於大小寫的字符為小寫

示例:您的測試是什么

我定義的正則表達式為: \\b[AZ]

String alphaCheck="What Is Your Test";
System.out.println(alphaCheck.matches("\b[A-Z]"));

([AZ][az]+(\\\\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返回值即可表示它是否正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM