我已经获得了一个字符串列表,可以在我的字符串中找到整个“单词”。一般来说,使用\b
锚点适用于大多数事情,除非我试图找到&字符作为单词或缩写后面有一个点,因为\b
在空格和&之间不匹配角色,或经过一段时间和空间。
例如找到这些字符串:
&
b&w
bpi
p.
我正在尝试写一些类似的东西:
\b((&)|(b&w)|(bpi)|(p\.))\b
在测试字符串中:
my b&w and & and p. test.
我也尝试使用\s
来检查空白,但我不想捕获空白,我也无法弄清楚如何不这样做。然后它还需要检查字符串的开头和结尾。我相信。
答案 0 :(得分:0)
尝试使用一组中的所有abbrs,如:
(^|\s+)(&|b&w|bpi|p\.)(\s+|$)
答案 1 :(得分:0)
而不是使用单词边界(\ b),你可以使用查找(空格)OR ^开头或行结尾的断言...如下所示:
(?<=^|\s)([^\s]*)(?=\s|$)
工作正则表达式示例:
测试字符串:
my b&w and & and p. test.
匹配
"my", "b&w", "and", "&", "and", "p.", "test."