c# - 在 C# 中匹配西里尔字符

标签 c# regex

我有一个巨大的代码文件,其中有很多行是这样的:

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/

相关文章:

c# - Json.net 不正确的日期时间格式

javascript - knockout : how to filter by genre AND by mediatype

c# - ASP.NET - 检查开发机器或服务器

python - 如何使用正则表达式提取人名?

c# - 无法将 c# .Net Core 3.0 与 directx 9.0 依赖项链接起来

c# - 如何让一个类的多个实例(在不同的线程中)监听同一个事件?

regex - 在 Emacs 中重新定义 "sentence"? (句子之间有一个空格,但忽略缩写)

java - 使用java解析文件 "/etc/default"

javascript - 语法错误: unterminated parenthetical for validating the local file path

java - 匹配到逗号前最后 3 个字符的正则表达式