Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式与Unicode不匹配_C#_Regex_Unicode_Character Properties - Fatal编程技术网

C# 正则表达式与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", "\

如何使用正则表达式匹配Unicode字符串?我正在从一个文本文件中加载几个关键字,并将它们与另一个文件中的正则表达式一起使用。关键字都包含unicode(如
á
等)。我不确定问题出在哪里。我有什么选择吗


代码:

并将关键字读取到列表中:

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'});