Java 代码:
import java.util.regex.*;
class Test {
public static void main(String[] args) {
String r = "\\bdog\\b";
Pattern p = Pattern.compile(r);
String text = "abc dog def";
System.out.println(p.matcher(text).matches());
}
}
等效的 Perl 代码:
$x = "abc dog def";
if ($x =~ /\bdog\b/) {
print "matches";
}
Perl 代码的行为符合预期,并打印出字符串“abc dog def”与给定的正则表达式匹配。另一方面,Java 代码表示该字符串与正则表达式不匹配。我犯了一些愚蠢的错误吗?有趣的是,如果我在 cmd 行(而不是字符串文字)上输入正则表达式,如Oracle Docs所示,那么它可以正常工作。