我可以使用哪种正则表达式来匹配(允许)任何语言的任何类型的字母?
我需要匹配任何字母,包括任何变音符号(例如,á、ü、ñ)
并排除任何类型的符号(数学符号、货币符号、装饰符号、方框图字符等)和标点符号。
我正在使用 ASP.NET MVC 2 和 .NET 4。我在视图模型中尝试过此注释
[RegularExpression(@"\p{L}*", ...
和这个
[RegularExpression(@"\p{L}\p{M}*", ...
但客户端验证会拒绝重音字符。
UPDATE:感谢您的所有回答。您的建议有效,但仅适用于 .NET,这里的问题是它还使用正则表达式通过 JavaScript 进行客户端验证。
我不得不去
[^0-9_\|°¬!#\$%/\\\(\)\?¡¿\+\{\}\[\]:\.\,;@ª^\*<>=&]
这是非常丑陋的,并没有涵盖所有场景,但它是最接近我需要的东西。
您可以使用Char.IsLetter http://msdn.microsoft.com/en-us/library/yyxz6h5w.aspx:
指示指定的 Unicode 字符是否属于 Unicode 字母。
使用.Net 4.0:
string onlyLetters = String.Concat(str.Where(Char.IsLetter));
On 3.5 String.Concat
只接受一个数组,所以你也应该调用ToArray
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)