我有一个巨大的代码文件,其中有很多行是这样的:
Enterprise::TextMessageBox::Show(String::Format(S"Възникнал е проблем:\n\n{0}", e->Message), S"Грешка");
我想做的是用我提供的另一个文本找到代码的每个部分,其中包含一串西里尔符号。我的问题是我似乎不能做出足够好的表达所以我可以捕获台词。 另一个问题是,有时这些行只包含一个这样的字符串,但有时它们在一行中包含 2 个或更多个。
每个这样的字符串都是相似的,看起来像这样:
S"some cyrilic symbols"
我试着用 Regex 类来制作它,但我似乎无法为字符串制作足够好的模式。
最佳答案
好的,您可以匹配 Unicode 属性。尝试这样的事情
Regex TheRegex = new Regex(@"S""[\p{IsCyrillic}\p{P}\p{N}\s]*""");
\p{IsCyrillic}
匹配任何西里尔字符
\p{P}
是标点符号的unicode类别
\p{N}
是任何语言的数字的 unicode 类别
\s
匹配空格
See here on msdn有关 unicode 类别的更多信息,请访问 regular-expressions.info .
关于c# - 在 C# 中匹配西里尔字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926514/