正则表达式匹配单词但不与<或者>旁边c#

时间:2011-09-11 20:47:17

标签: c# regex

从这个字符串“asdfasdf obama blahobama obama。> obama”

它不应该与blahobama或> obama

相匹配

目前我有这个正则表达式\ bobama \ b

但它也找到“> obama”

我只想找到前两个“奥巴马”。

不是第三个。 >奥巴马不应该找到匹配。

2 个答案:

答案 0 :(得分:2)

一个简单的选择是在单词周围使用lookarounds专门禁止<>

(?<![<>])\bobama\b(?![<>])

Working example on Regex Storm.net

同样,您可以根据需要使用Unicode categories

(?<!\p{S})\bobama\b(?!\p{S})

您可以使用字符类组合它们,例如,也可以排除数字,而不是\p{S}使用[\p{S}\p{N}]

Working example

答案 1 :(得分:1)

[^>]\bobama\b

但如果您想选择它,它不会选择obama开始一行:

((^)|([^>]\b))obama\b