我在转换一个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。
发布于 2012-10-22 22:39:40
要像在代码中那样实现函数,请执行以下操作:
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类的更高级的正则表达式代码。
发布于 2012-10-22 22:39:59
你可以直接使用String.matches()
if (line.matches("[0-9A-F-]{44}")) {
// do action
}https://stackoverflow.com/questions/13013695
复制相似问题