我有一段阿拉伯语文本,我想使用正则表达式从中提取数字。这是我的尝试。
字符串:
“ما المجموع:
1+2"
Match match = Regex.Match(text, "المجموع: ([^\\r\\n]+)", RegexOptions.IgnoreCase);
它总是返回false。 groups.value 将始终返回 null。
预期输出:
match.Groups[1].Value //returns (1+2)
最佳答案
您编写的正则表达式匹配一个单词,然后是一个冒号,然后是一个空格,然后是反斜杠、r
和 n
以外的 1 个或多个字符。
您想匹配单词、冒号和任意数量的空白字符后的整行:
var text = "ما المجموع:\n1+2";
var result = Regex.Match(text, @"المجموع:\s*(.+)")?.Groups[1].Value;
Console.WriteLine(result); // => 1+2
参见 C# demo
其他可能的模式:
@"المجموع:\r?\n(.+)" // To match CRLF or LF line ending only
@"المجموع:\n(.+)" // To match just LF ending only
此外,如果您针对具有 CRLF 结尾的长多行文本运行正则表达式,则将 .+
替换为 [^\r\n]+
是有意义的,因为.
在 .NET 正则表达式中匹配除换行符、LF 之外的任何字符,因此匹配 CR 符号。
关于c# - 正则表达式与阿拉伯语匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63812850/