我已经为unicode字符串here读了一个很棒的解决方案,但我需要检查整个字符串是字母,空格还是破折号,我想不出任何解决方案。这个例子没有按我的意愿运作。
name = u"Василий Соловьев-Седой"
r = re.compile(r'^([\s\-^\W\d_]+)$', re.U)
r.match(name) -> None
答案 0 :(得分:4)
r = re.compile(r'^(?:[^\W\d_]|[\s-])+$', re.U)
[^\W\d_]
匹配任何字母(通过匹配除数字和下划线之外的任何字母数字字符)。
[\s-]
当然匹配空格和破折号。
答案 1 :(得分:0)
如果您只想查看:
name = u"Василий Соловьев-Седой";
name = name.replace("-","").replace(" ","");
name.isalpha()