首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Preg_match PHP到java的翻译

Preg_match PHP到java的翻译
EN

Stack Overflow用户
提问于 2012-10-22 22:34:41
回答 2查看 14.2K关注 0票数 4

我在转换一个php pregmatch到java时遇到了一些问题。我以为我把所有的东西都弄对了,但它似乎不起作用。代码如下:

原创PHP:

代码语言:javascript
复制
/* Pattern for 44 Character UUID */
$pattern = "([0-9A-F\-]{44})";
if (preg_match($pattern,$content)){
                /*DO ACTION*/
            }

我的Java代码:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-22 22:39:40

要像在代码中那样实现函数,请执行以下操作:

代码语言:javascript
复制
final String pattern = "[0-9A-F\\-]{44}";
public static boolean pregMatch(String pattern, String content) {
    return content.matches(pattern);
}

然后你可以这样调用它:

代码语言:javascript
复制
if (pregMatch(pattern, line)) {
    //DO ACTION
}

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

票数 8
EN

Stack Overflow用户

发布于 2012-10-22 22:39:59

你可以直接使用String.matches()

代码语言:javascript
复制
if (line.matches("[0-9A-F-]{44}")) {
  // do action
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13013695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档