我有一个相当奇特的问题。我正在尝试找到类似的模式[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
,但我不确定其含义。