2017-06-13 53 views
2

我的國家的名單之間,每一個國家的名字是單引號,像這樣VB.Net正則表達式,得到可能含有單引號的話,那是單引號

'United States' 

我用這正則表達式匹配他們:'(.*?)'

偉大工程,直到我得到像'Cote d'Ivoire'一個比較模糊的國家名稱,它結束了匹配科特迪瓦d

我怎樣才能改變我目前的正則表達式來正確地匹配國家的名字,一個作爲一個例子,我只是舉了一個例子嗎?

回答

2

您可以嘗試迫使正則表達式引擎,以匹配在非單詞邊界位置的最終'

'(.*?)'\B 

regex demo

當它前面有您可以匹配第一'一個非字邊界,後跟一個字邊界,類似地匹配關閉'

\B'\b(.*?)\b'\B 

請參閱another regex demo

+0

請注意,在.NET正則表達式中,'\ b'是Unicode感知的,所以即使在國名末尾有'ł','\ b'和'\ B'也會識別(非)字邊界。 –

相關問題