C# 正则表达式与Unicode不匹配
如何使用正则表达式匹配Unicode字符串?我正在从一个文本文件中加载几个关键字,并将它们与另一个文件中的正则表达式一起使用。关键字都包含unicode(如C# 正则表达式与Unicode不匹配,c#,regex,unicode,character-properties,C#,Regex,Unicode,Character Properties,如何使用正则表达式匹配Unicode字符串?我正在从一个文本文件中加载几个关键字,并将它们与另一个文件中的正则表达式一起使用。关键字都包含unicode(如á等)。我不确定问题出在哪里。我有什么选择吗 代码: 并将关键字读取到列表中: var rdComp = new StreamReader(opnDiag.FileName); string compSplit = rdComp.ReadToEnd() .Replace("\r\n", "\
á
等)。我不确定问题出在哪里。我有什么选择吗
代码: 并将关键字读取到列表中:
var rdComp = new StreamReader(opnDiag.FileName);
string compSplit = rdComp.ReadToEnd()
.Replace("\r\n", "\n")
.Replace("\n\r", "\n");
rdComp.Dispose();
string[] compList = compSplit.Split(new[] {'\n'});
然后我将数组更改为列表。当匹配特定字符时,我相信正则表达式只支持ASCII字符集的文字。除此之外,您还可以使用\uxxx在Unicode代码点上进行匹配
请参阅。您可以使用[\u0000-\uffff]+至少匹配BMP您可以发布使用正则表达式的代码片段吗?它可能是一个字符集问题(例如,与regex无关),或者是regex问题,或者……您使用的是什么regex以及如何使用?请显示一些代码。关键字是否总是以单词字符(即字母、数字或下划线)开头和结尾?看起来应该可以。你能不能把它简化成一个单一的正则表达式场景,但却无法匹配?我不确定这是问题所在。她/他没有使用字符类,而是使用逐字字符串,周围有单词边界。@Pietzcker-这就是问题所在。他/她需要解析字符串并将每个字符添加为unicode代码点。我刚刚尝试在C#中的正则表达式中使用unicode文本,效果非常好<代码>控制台写入线(Regex.Replace(“It BӦЯӁڀ!”,@“\bBӦЯӁڀ\B”,“works”)代码>返回
它可以工作代码>
var rdComp = new StreamReader(opnDiag.FileName);
string compSplit = rdComp.ReadToEnd()
.Replace("\r\n", "\n")
.Replace("\n\r", "\n");
rdComp.Dispose();
string[] compList = compSplit.Split(new[] {'\n'});