具有国家字符的名称的正则表达式

时间:2013-03-07 10:30:24

标签: python regex

我正在寻找一个正则表达式来验证名称(使用Python标准模块重新编写)。

表达式适用于带有标准拉丁字符(a-z),空格,短划线,带有西欧字符(æøåüää等)的名称,还有中文,泰文,阿拉伯等名称。

所有这些都可以被视为“字母” - 它们没问题,但是特殊字符如!@#$%& *()和引号等应该会失败。

我还没有找到能做到这一点的事情 - 任何知道如何做到这一点的人?

PS:有数千个角色符合条件 - 简单地列出它们是不现实的。

2 个答案:

答案 0 :(得分:3)

问题是,你真的需要这个吗?也许相反的方法可能对您更好,即指定哪些字符允许:例如[^ \t]等。

您还应该查看\s\wLOCALE等其他内容,并设置{{1}}。

答案 1 :(得分:1)

您可以创建一个匹配您要匹配的所有语言的字符类: 例如

[\p{Cyrillic}\p{Latin}]

将匹配所有cyrilic和拉丁字母。不确定这是否是最佳解决方案,但它确实有效。

Here是完整的参考资料