Preg_match PHP到java的翻译

Evi*_*irl 4 php java preg-match

我在将php pregmatch转换为java时遇到了一些麻烦.我以为我把它全部纠正了,但似乎没有用.这是代码:

原始PHP:

/* Pattern for 44 Character UUID */
$pattern = "([0-9A-F\-]{44})";
if (preg_match($pattern,$content)){
                /*DO ACTION*/
            }
Run Code Online (Sandbox Code Playgroud)

我的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
                    }
Run Code Online (Sandbox Code Playgroud)

所以我的测试输入是:DBA40365-7346-4DB4-A2CF-52ECA8C64091-0

使用一系列System.outs我得到b = false.

dou*_*arp 7

要像在代码中那样实现函数:

final String pattern = "[0-9A-F\\-]{44}";
public static boolean pregMatch(String pattern, String content) {
    return content.matches(pattern);
}
Run Code Online (Sandbox Code Playgroud)

然后你可以称之为:

if (pregMatch(pattern, line)) {
    //DO ACTION
}
Run Code Online (Sandbox Code Playgroud)

您不需要在您的括号中,pattern因为这只是创建一个您没有使用的匹配组.如果需要访问反向引用,则需要使用括号PatternMatcher类和更高级的正则表达式代码.


xda*_*azz 6

你可以使用 String.matches()

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