簡體   English   中英

如何編寫正則表達式以匹配Java中的模式?

[英]How to write regular expression to match a pattern in java?

我有以下java字符串:

"Java (simple) _New=AB_U748490_JAVA47BYH"

..並且我使用以下正則表達式:

"_New=[A-Z]{2}_(\w{7})_(JAVA.+)";

問題:它總是返回false 但為什么?

您編寫正則表達式的方式將與Matcher.find()一起使用,因為find會在任何地方的整個輸入字符串中搜索正則表達式。

如果您想使正則表達式完全匹配,則需要對正則表達式進行少量修改,並在正則表達式的開頭添加。*,例如:

.*_New=[A-Z]{2}_(\\w{7})_(JAVA.+)

注意在Java中如何將\\字符轉義為\\\\

嘗試使用此代碼,它將打印Matches

public static void main(String[] args) {
    String s = "Java (simple) _New=AB_U748490_JAVA47BYH";
    Pattern p = Pattern.compile(".*_New=[A-Z]{2}_(\\w{7})_(JAVA.+)");

    Matcher m = p.matcher(s);
    if (m.matches()) {
        System.out.println("Matches");
    } else {
        System.out.println("Didn't match");
    }
}

或者,如果不想更改正則表達式,則可以在Matcher對象上使用find()方法。

希望能有所幫助。

暫無
暫無

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

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