2016-09-29 55 views
-3

我試圖解析以下字符串的工作(這是法國人我猜):正則表達式的Unicode字符不是在.NET

L'操作NE PEUT理由EFFECTUéE

對於這個我做了這個正則表達式[\ p {L}「] +這是在使用RegexBuddy(正則表達式測試儀)工作的罰款甚至[\ w」] +也正在問題是,當我運行相同的正則表達式不工作我.net代碼。它只能採摘到L'OP

附有快照。 在此先感謝。 enter image description here

enter image description here

+3

請提供一個[mcve] *作爲文本*,以便我們可以重現該問題。屏幕截圖比文本更難處理。 –

+1

您需要展示如何實例化正則表達式對象。 'L'OP'是否是一個單一的Unicode代碼點,你確定'é'?如果有一個帶有區分符號的字符,你需要使用'[\ p {L} \ p {M}'] +' –

+0

它從來不是正則表達式的問題我剛剛添加了這個參考,爲什麼正則表達式不工作在.net中但在正則表達式測試中工作。 –

回答

1

我想我已經找到了問題,這一切都在一個文件中,我被讀取文件中像

MemoryStream mm = new MemoryStream(unzippedfile, false); 
StreamReader sr = new StreamReader(mm, true); 

所以,當字符串達到regex對象是不一樣, 它變成了 L'OPTIONAL NE PEUT TREEFFECTU E。

不過,我現在已經改變了我的代碼:

StreamReader的SR =新的StreamReader(毫米,Encoding.UTF7,真正的);

而且一切正常。感謝您的意見,我從您的意見中得到了線索。

相關問題