本文介绍了将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中使用括号,因为这只会创建一个您没有使用的匹配组。如果需要访问反向引用,则需要使用PatternMatcher类的括号和更高级的正则表达式代码。

这篇关于将PHP匹配到Java的翻译(_M)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 06:52