只允许字母和“特殊”;字母(& # 233;& # 232;& # 224;等)通过正则表达式
本文关键字:正则表达式 许字母 特殊 字母 | 更新日期: 2023-09-27 18:01:43
我试图匹配一个字符串,看看它是否只由字母组成。各种信件都是允许的。所以典型的a-zA-Z
,还有áàéèó...
等等
我试图将其与以下正则表达式匹配:(['S])*
但这也允许像'/<>*()...
等字符。这些字符显然不属于一个名字。当我只想允许字母和"特殊"字母时,正则表达式看起来如何?
对于非regex 解决方案,您可以使用char。胰岛
字符。胰岛方法
指定的Unicode字符是否被归类为字母的信。
string str = "Abcáàéèó";
bool result = str.All(char.IsLetter);
这将为数字和'/<>*()
等提供false
结果。
你可以使用的字符类正好表示:
'p{L}
所以正则表达式
^'p{L}+$
如果字符串仅由字母组成,则将匹配。如果希望组合字符,则
^('p{L}'p{M}*)+$
。
PowerShell快速测试:PS> 'foo','bär','a.b','&^#&%','123','кошка' -match '^'p{L}+$'
foo
bär
кошка