我正在寻找一个正则表达式来验证名称(使用Python标准模块重新编写)。
表达式适用于带有标准拉丁字符(a-z),空格,短划线,带有西欧字符(æøåüää等)的名称,还有中文,泰文,阿拉伯等名称。
所有这些都可以被视为“字母” - 它们没问题,但是特殊字符如!@#$%& *()和引号等应该会失败。
我还没有找到能做到这一点的事情 - 任何知道如何做到这一点的人?
PS:有数千个角色符合条件 - 简单地列出它们是不现实的。
答案 0 :(得分:3)
问题是,你真的需要这个吗?也许相反的方法可能对您更好,即指定哪些字符不允许:例如[^ \t]
等。
您还应该查看\s
,\w
,LOCALE
等其他内容,并设置{{1}}。
答案 1 :(得分:1)
您可以创建一个匹配您要匹配的所有语言的字符类: 例如
[\p{Cyrillic}\p{Latin}]
将匹配所有cyrilic和拉丁字母。不确定这是否是最佳解决方案,但它确实有效。
Here是完整的参考资料