[英]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.