如何在C#正则表达式中查找缩写为单词

时间:2014-02-05 19:59:04

标签: c# regex string

我已经获得了一个字符串列表,可以在我的字符串中找到整个“单词”。一般来说,使用\b锚点适用于大多数事情,除非我试图找到&字符作为单词或缩写后面有一个点,因为\b在空格和&之间不匹配角色,或经过一段时间和空间。

例如找到这些字符串:

&
b&w
bpi
p.

我正在尝试写一些类似的东西:

\b((&)|(b&w)|(bpi)|(p\.))\b

在测试字符串中:

my b&w and & and p. test.

我也尝试使用\s来检查空白,但我不想捕获空白,我也无法弄清楚如何不这样做。然后它还需要检查字符串的开头和结尾。我相信。

2 个答案:

答案 0 :(得分:0)

尝试使用一组中的所有abbrs,如:

(^|\s+)(&|b&w|bpi|p\.)(\s+|$)

答案 1 :(得分:0)

而不是使用单词边界(\ b),你可以使用查找(空格)OR ^开头或行结尾的断言...如下所示:

(?<=^|\s)([^\s]*)(?=\s|$)

工作正则表达式示例:

http://regex101.com/r/rJ0wU4

测试字符串:

my b&w and & and p. test.

匹配

"my", "b&w", "and", "&", "and", "p.", "test."