Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在寻找一个正则表达式来验证名称(使用 Python 标准模块 re)。
该表达式应适用于具有标准拉丁字符 (az)、空格、破折号、带有西欧字符(æøåüöä 等)的名称,但也适用于中文、泰语、阿拉伯等。
所有这些都可以被认为是“字母”——它们都可以,但是特殊字符,如 !@#$%&*() 和引号等应该会失败。
我还没有真正找到可以做到这一点的东西 - 任何知道如何做到这一点的人?
PS:有成千上万个符合条件的字符 - 简单地列出它们是不现实的。
那么问题真的是你需要这个做什么?也许相反的方法可能对您更好,即指定不允许使用哪些字符:例如[^ \t]等。
[^ \t]
您还应该查看手册中的\s,\w和其他内容,并结合设置LOCALE.
\s
\w
LOCALE
您可以创建一个字符类,它将匹配您要匹配的所有语言:例如
[\p{Cyrillic}\p{Latin}]
将匹配所有西里尔字母和拉丁字母。不确定这是否是最好的解决方案,但它确实有效。
这是完整的参考