带有单词边界的Java模式不起作用

时间:2018-09-19 15:01:07

标签: java regex

我用Java创建了一个非常简单的正则表达式:

Pattern polar = Pattern.compile("\\bPOLAR\\.\\b");
assertEquals(true, polar.matcher("My String POLAR. other string").find()); <=== this fails!

我想查找是否有“ POLAR”一词。在我的字符串中。我在regexp中做错了,但看不到。

您有什么提示吗?

2 个答案:

答案 0 :(得分:1)

点(非单词字符)后没有单词边界。

您可以使用此正则表达式:

\bPOLAR\.\B

\B声明\b不匹配的位置。

RegEx Demo

在Java中:

final Pattern polar = Pattern.compile( "\\bPOLAR\\.\\B" );

答案 1 :(得分:0)

必须是正则表达式吗? String::contains似乎很适合。

String str = "My String POLAR. other string";
System.out.println(str.contains("POLAR."));

输出:

  

true