unicode字符的正则表达式无法在.net中工作

时间:2016-09-29 07:05:55

标签: c# .net regex unicode

我正在尝试解析以下字符串(我猜是法语):

L'OPéRATIONNEPEUTêTREEFFECTUéE

为此,我已经制作了这个正则表达式 [\ p {L}'] + ,这在regexbuddy(正则表达式测试器)中运行正常甚至 [\ w'] + 也正在运行问题是当我运行.net代码时,同样的正则表达式不起作用。它只是选择 L'OP

附上快照。 提前致谢。enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

我想我已经找到了问题,它全部存放在一个文件中,我正在读取该文件,如

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

所以,当字符串到达​​正则表达式对象时,它不相同, 它成了 L'OP RATIONNEPEUT TREEFFECTU E。

但是,我现在改变了我的代码:

StreamReader sr = new StreamReader(mm, Encoding.UTF7 ,true);

一切正常。感谢您的评论,我从您的评论中得到了线索。