阿拉伯语和英语字母的正则表达式(在 viewmodel-c# 中)

regex for Arabic and English letter(in viewmodel-c#)

我想要一个匹配的正则表达式:

1.Arabic 个字母。

2.English 个字母。

3.Allow space.

4.min 2-最大 30.

然后我写了这个正则表达式:

^(?:[a-zA-Z\s\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDCF\uFDF0-\uFDFF\uFE70-\uFEFF]|(?:\uD802[\uDE60-\uDE9F]|\uD83B[\uDE00-\uDEFF])[ ]{0,1}){2,30}$

但不好

如果阿拉伯字母正则表达式为[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF](参见Regular Expression not to allow numbers - just Arabic letters),英文字母为[a-zA-Z],则可以使用

^(?=.{2,30}$)[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z]+(?:\s[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z]+)?$

详情:

  • ^ - 字符串开头
  • (?=.{2,30}$) - 字符串长度必须为 2 到 30 个字符
  • [\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z]+ - 一个或多个阿拉伯文或英文字母
  • (?:\s[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z]+)? - 一个空格和一个或多个阿拉伯语或英语字母的可选出现
  • $ - 字符串结尾。