如何为所有utf8字符使用正则表达式? 例如,我想通过正则表达式检查这种格式:
[1][الهه اردونی]
我使用\ w检查波斯语字符,但它起作用了:
^(\[1\])(\[\w+\])$
我也用过这个:
^(\[1\])(\[\u0600-\u06FF\])$
那我怎么能这样做? 谢谢你的帮助
答案 0 :(得分:3)
你可以使用类似的东西:
^(\[1\])(\[[ا-ی\s]+\])$
答案 1 :(得分:2)
答案 2 :(得分:2)
你快到了。您只需要在下面的字符类中包含范围\u0600-\u06FF
,即匹配空格\s
的模式。
^(\[1\])(\[[\u0600-\u06FF\s]+\])$
String input = @"[1][الهه اردونی]";
Regex rgx = new Regex(@"^(\[1\])(\[[\u0600-\u06FF\s]+\])$");
foreach (Match m in rgx.Matches(input))
{
Console.WriteLine(m.Groups[1].Value);
Console.WriteLine(m.Groups[2].Value);
}
输出:
[1]
[الهه اردونی]
[\u0600-\u06FF\s]+
匹配给定列表中的一个或多个字符。 -
仅在字符类中作为范围运算符。