本文介紹了將PHP匹配到Java的翻譯(_M)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我在將php pregmatch轉換為java時遇到一些問題。我以為我都猜對了,但好像不管用。代碼如下:
原始PHP:
/* Pattern for 44 Character UUID */
$pattern = "([0-9A-F-]{44})";
if (preg_match($pattern,$content)){
/*DO ACTION*/
}
我的Java代碼:
final String pattern = "([0-9A-F\-]{44})";
public static boolean pregMatch(String pattern, String content) {
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(content);
boolean b = m.matches();
return b;
}
if (pregMatch(pattern, line)) {
//DO ACTION
}
所以我的測試輸入是:
DBA40365-7346-4DB4-A2CF-52ECA8C64091-0
使用一系列System.out,我得到b=false。
推薦答案
要像在代碼中那樣實現函數:
final String pattern = "[0-9A-F\-]{44}";
public static boolean pregMatch(String pattern, String content) {
return content.matches(pattern);
}
然后您可以這樣調用它:
if (pregMatch(pattern, line)) {
//DO ACTION
}
您不需要在pattern
中使用括號,因為這只會創建一個您沒有使用的匹配組。如果需要訪問反向引用,則需要使用Pattern
和Matcher
類的括號和更高級的正則表達式代碼。
這篇關于將PHP匹配到Java的翻譯(_M)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,