簡體   English   中英

Preg_match PHP到java的翻譯

[英]Preg_match PHP to java translation

我在將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.outs我得到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的括號,因為這只會創建一個您未使用的匹配組。 如果需要訪問反向引用,則需要使用PatternMatcher類的括號中更高級的正則表達式代碼。

你可以使用String.matches()

if (line.matches("[0-9A-F-]{44}")) {
  // do action
}

暫無
暫無

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

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