如何检查正则表达式中的波斯字符格式

时间:2014-11-22 10:57:48

标签: c# regex persian

如何为所有utf8字符使用正则表达式? 例如,我想通过正则表达式检查这种格式:

[1][الهه اردونی]

我使用\ w检查波斯语字符,但它起作用了:

^(\[1\])(\[\w+\])$

我也用过这个:

^(\[1\])(\[\u0600-\u06FF\])$

那我怎么能这样做? 谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

你可以使用类似的东西:

^(\[1\])(\[[ا-ی\s]+\])$

答案 1 :(得分:2)

正则表达式怎么样

^(\[1\])\[[\p{L}\s]+\]$

示例:http://regex101.com/r/cU1nQ8/1

  • \p{L}匹配来自任何语言的任何类型的信件

答案 2 :(得分:2)

你快到了。您只需要在下面的字符类中包含范围\u0600-\u06FF,即匹配空格\s的模式。

^(\[1\])(\[[\u0600-\u06FF\s]+\])$

DEMO

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]
[الهه اردونی]

IDEONE

[\u0600-\u06FF\s]+匹配给定列表中的一个或多个字符。 -仅在字符类中作为范围运算符。