在C#中匹配西里尔符号

Jor*_*dan 6 c# regex

我有一个巨大的代码文件,有很多行,如下所示:

Enterprise::TextMessageBox::Show(String::Format(S"????????? ? ???????:\n\n{0}", e->Message), S"??????");
Run Code Online (Sandbox Code Playgroud)

我想要做的是找到代码的每个部分,用我提供的另一个文本字符串的cyrilic符号.我的问题是,我似乎无法做出好的表达,所以我可以抓住线条.另一个问题是有时候线条只包含一个这样的字符串,但有时候它们在一行中包含2个或更多.

每个这样的字符串都是相似的,它看起来像这样:

S"some cyrilic symbols"
Run Code Online (Sandbox Code Playgroud)

我试图用Regex类来制作它,但我似乎无法对字符串做出足够好的模式.

ste*_*ema 8

好的,您可以匹配Unicode属性.尝试这样的事情

Regex TheRegex = new Regex(@"S""[\p{IsCyrillic}\p{P}\p{N}\s]*""");
Run Code Online (Sandbox Code Playgroud)

\p{IsCyrillic} 匹配任何西里尔字符

\p{P} 是标点符号的unicode类别

\p{N} 是任何语言中数字的unicode类别

\s 匹配一个空格

有关unicode类别的更多信息,请参阅msdn,此处参见regular-expressions.info.