從這個字符串「asdfasdf奧巴馬blahobama奧巴馬>奧巴馬」正則表達式匹配的字,但不與< or >旁邊C#
此刻它不應該匹配blahobama或>奧巴馬
我有這樣的正則表達式\ bobama \ b
,但它也發現 「>奧巴馬」
我只是想找到兩個率先 「奧巴馬」 S。
不是第三個。 >奧巴馬不應該找到一個匹配。
從這個字符串「asdfasdf奧巴馬blahobama奧巴馬>奧巴馬」正則表達式匹配的字,但不與< or >旁邊C#
此刻它不應該匹配blahobama或>奧巴馬
我有這樣的正則表達式\ bobama \ b
,但它也發現 「>奧巴馬」
我只是想找到兩個率先 「奧巴馬」 S。
不是第三個。 >奧巴馬不應該找到一個匹配。
[^>]\bobama\b
但它不會挑obama
,如果你想選擇它啓動線,:
((^)|([^>]\b))obama\b
一個簡單的選擇是使用lookarounds字左右,以明確拒絕<
和>
:
(?<![<>])\bobama\b(?![<>])
Working example on Regex Storm.net
同樣,你可以使用Unicode categories您認爲合適的:
(?<!\p{S})\bobama\b(?!\p{S})
可以使用字符類,例如,也排除數字將它們結合起來,而不是\p{S}
使用[\p{S}\p{N}]
。
真棒,謝謝 – Jules
請問您能解釋得好嗎?你是否想要一種通用的方式來僅查找多次出現的前兩個實例或者其他什麼? –
每次出現時,我都想匹配obama這個詞,除非兩邊都有>或<。所以這匹配奧巴馬。但這個奧巴馬<不。 – Jules