我有一个相当奇特的问题。我正在尝试找到类似的模式[some string][word boundary]。简化,我的代码是:
final Pattern pattern = Pattern.compile(Pattern.quote(someString) + "\\b");
final String value = someString + " ";
System.out.println(pattern.matcher(value).find());
我的逻辑告诉我这应该总是输出true,不管是什么someString。然而:
- 如果
someString以单词字符结尾(例如“abc”),true则输出; - 如果
someString以单词边界(例如“abc.”)结尾,false则输出。
任何想法发生了什么?我目前的解决方法是使用\W而不是\b,但我不确定其含义。