在C#代码中,我试图传递中文字符:" 中文ABC123"
。C语言正则表达式中的外文字符#
当我使用一般的字母数字使用"^[a-zA-Z0-9\s]+$"
,
它不通过对"中文ABC123"
和正则表达式验证失败。
我需要为C#添加哪些其他表达式?
在C#代码中,我试图传递中文字符:" 中文ABC123"
。C语言正则表达式中的外文字符#
当我使用一般的字母数字使用"^[a-zA-Z0-9\s]+$"
,
它不通过对"中文ABC123"
和正则表达式验证失败。
我需要为C#添加哪些其他表达式?
从任何语言使用匹配任何字母字符:
\p{L}
如果你也想匹配的数字:
[\p{L}\p{Nd}]+
\p{L}
...匹配的Unicode类别字母的字符。
它是短形式[\ p {的L1} \ p {路} \ p {LT} \ p {Lm的} \ p {螺} ]
\p{Ll}
...匹配小写字母。 (ABC)
\p{Lu}
...匹配大写字母。 (ABC)
\p{Lt}
...匹配的首字母大写字母。
\p{Lm}
...匹配修饰符字母。
\p{Lo}
...匹配的字母不区分。 (中文)
\p{Nd}
...匹配unicode类别十进制数字的一个字符。
只需更换:^[a-zA-Z0-9\s]+$
与^[\p{L}0-9\s]+$
或者,如果标点符号是OK,简单的'\ w'([字字符(https://msdn.microsoft.com/en-us/library/20bw873z .aspx#WordCharacter))可以用来代替'[\ p {L} 0-9]'。 – bzlm 2015-01-26 19:33:20
非常感谢Andie2302。它效果很好。 – user2683269 2015-01-26 19:43:29
顺便说一句Andie2302,这个与html5模式存在巨大冲突,我得到了这个用于HTML5模式属性的错误,并且未能通过验证。你有没有想法为所有语言使用HTML5模式attirbute? – user2683269 2015-01-26 20:57:35