我可以使用哪个正则表达式来匹配(允许)来自任何语言的任何类型的字母?
我需要匹配任何字母,包括任何变音符号(例如,á、ü、ñ)
并排除任何类型的符号(数学符号、货币符号、装饰符号、画框字符等)和标点符号。
我将 ASP.NET MVC 2 与 .NET 4 一起使用。我在我的 View 模型中尝试过这个注释
[RegularExpression(@"\p{L}*", ...
和这个
[RegularExpression(@"\p{L}\p{M}*", ...
但客户端验证拒绝重音字符。
更新:
感谢您的所有回答。您的建议有效,但仅适用于 .NET,这里的问题是它还使用正则表达式通过 JavaScript 进行客户端验证。
我不得不去
[^0-9_\|°¬!#\$%/\\\(\)\?¡¿\+\{\}\[\]:\.\,;@ª^\*<>=&]
这是非常丑陋的,并没有涵盖所有场景,但最接近我需要的东西。
最佳答案
您可以使用 Char.IsLetter
:
Indicates whether the specified Unicode character is categorized as a Unicode letter.
使用 .Net 4.0:
string onlyLetters = String.Concat(str.Where(Char.IsLetter));
3.5
String.Concat
只有一个数组除外,所以你也应该调用 ToArray
.
关于javascript - .NET 正则表达式匹配来自任何语言的任何类型的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2949861/