0

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

该表达式应适用于具有标准拉丁字符 (az)、空格、破折号、带有西欧字符(æøåüöä 等)的名称,但也适用于中文、泰语、阿拉伯等。

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

我还没有真正找到可以做到这一点的东西 - 任何知道如何做到这一点的人?

PS:有成千上万个符合条件的字符 - 简单地列出它们是不现实的。

4

2 回答 2

3

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

您还应该查看手册中的\s,\w和其他内容,并结合设置LOCALE.

于 2013-03-07T10:34:13.947 回答
1

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

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

将匹配所有西里尔字母和拉丁字母。不确定这是否是最好的解决方案,但它确实有效。

是完整的参考

于 2013-03-07T10:44:44.547 回答