c#正则表达式,用于英文字符和非英文字符
本文关键字:字符 文字符 正则表达式 用于 | 更新日期: 2023-09-27 18:10:37
根据MSDN,我使用^[a-zA-Z''-''s]{1,40}$
正则表达式作为名称验证器。
现在我想添加非英语字符。
我该怎么做?
要支持所有BMP和星光平面,您需要'p{L}
(所有字母)和'p{M}
(所有变音符)Unicode类别类:
^['p{L}'p{M}'s'-]{1,40}$
注意'p{L}
已经包括[a-zA-Z]
,以及所有的小写字母和大写字母。
's
匹配换行符(我怀疑你真的需要换行符来匹配),你可以使用'p{Zs}
- Unicode分隔符类(各种空格):
^['p{L}'p{M}'p{Zs}'-]{1,40}$
将连字符放在末尾是最佳实践,尽管它在正则表达式中也会作为文字连字符处理。
你可以试试:
^['p{L}''s-]{1,40}$
注意'p{L}是Unicode属性,它匹配所有带有属性字母的内容。