python - 如何检查 unicode 字符串是否仅为字母、空格和破折号

标签 python regex

我读过一个很好的 unicode 字符串解决方案 here ,但我需要检查整个字符串是否为字母、空格或破折号,我想不出任何解决方案。该示例无法正常工作。

name = u"Василий Соловьев-Седой"
r = re.compile(r'^([\s\-^\W\d_]+)$', re.U)
r.match(name) -> None

最佳答案

r = re.compile(r'^(?:[^\W\d_]|[\s-])+$', re.U)

[^\W\d_] 匹配任何字母(通过匹配除数字和下划线之外的任何字母数字字符)。

[\s-] 当然匹配空格和破折号。

关于python - 如何检查 unicode 字符串是否仅为字母、空格和破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9127782/

相关文章:

python - 通过相同的元组项将元组列表拆分为多个列表

Python:将函数应用于groupby

python - 使用 TensorFlow 作为后端的 keras 出现错误

python - 得到一个 'AttributeError at/login/authenticated' , 'User' 对象没有属性 'backend'

python - 更新我的 python 安装上的 SQLite3 版本

java - 这个正则表达式有什么问题?

c# - 如何防止 "regex injection"?

php - 在每次字符更改时将空格插入字符串

jquery - 日本电话号码的正则表达式

java - 提供的正则表达式匹配什么?