c# - 正则表达式与阿拉伯语匹配

标签 c# regex xamarin.android

我有一段阿拉伯语文本,我想使用正则表达式从中提取数字。这是我的尝试。

字符串:

“ما المجموع:

1+2"

Match match = Regex.Match(text, "المجموع: ([^\\r\\n]+)", RegexOptions.IgnoreCase);

它总是返回false。 groups.value 将始终返回 null。

预期输出:

match.Groups[1].Value //returns (1+2)

最佳答案

您编写的正则表达式匹配一个单词,然后是一个冒号,然后是一个空格,然后是反斜杠、rn 以外的 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/

相关文章:

regex - sed 需要正则表达式

python - 多次匹配非捕获组

java - 正则表达式 - 排除名称的单词列表

visual-studio - 嵌入图像未在 Xamarin.Forms 中显示

c# - 在 WPF DataGrid 中转换和使用 DataTable?

c# - 记录Web服务启动/停止

c# - HtmlTable 和 TagBuilder 的区别 ("table")

c# - 将 LDAP 中的 WhenChanged 属性(通用时间)转换为 C# 中的 DateTime

xamarin - 更新到 Visual Studio 2017 版本 15.8 预览版后,出现 "Can not resolve reference: ` System.Memory `"或 "Could not find ` System.Memory `"

sqlite - 如何使用 SQLite.NET 按降序排序? OrderByDescending() 给我错误 : "Order By does not support: xx => Convert(xx).ID"