ped*_*dro 9 .net regex unicode data-annotations asp.net-mvc-2
我可以使用哪种正则表达式来匹配(允许)来自任何语言的任何类型的字母
我需要匹配任何字母,包括任何变音符号(例如á,ü,ñ等),并排除任何类型的符号(数学符号,货币符号,装饰符号,框图字符等)和标点字符.
我正在使用带有.net 4的asp.net MVC 2.我在我的视图模型中尝试过这个注释:
[RegularExpression(@"\p{L}*", ...
还有这个:
[RegularExpression(@"\p{L}\p{M}*", ...
但客户端验证不起作用.
更新: 感谢您的所有答案,您的建议工作,但仅适用于.net,这里的问题是它还使用正则表达式进行客户端验证与JavaScript(抱歉,如果这还不够清楚).我不得不去:
[!?^ 0-9_\|°¬#\ $%/ \()\¡¿+ {} []:\; @ª^*<> =&]*
这是非常丑陋的,并不涵盖所有场景,但最接近我需要的东西.
忽略你的语法老师并使用双底片:
[^\W\d_]
请记住,\w匹配任何字母,数字或下划线,因此请将它们排除在上面.你可能会把它读作"不是一个字的字符,而不是一个数字,而不是一个下划线" - 只留下字母.应用DeMorgan的定理,它更有意义:"一个单词字符,但既不是数字也不是下划线."
您可以使用Char.IsLetter:
指示指定的 Unicode 字符是否归类为 Unicode 字母。
使用 .Net 4.0:
string onlyLetters = String.Concat(str.Where(Char.IsLetter));
在 3.5 上String.Concat只有一个数组除外,所以你也应该调用ToArray.
| 归档时间: | 
 | 
| 查看次数: | 4325 次 | 
| 最近记录: |