如何检查Unicode字符串是否仅包含字母、空格和破折号
我在这里看到了一个关于unicode字符串的很棒的解决方案这里,但是我需要检查整个字符串,看看里面是不是只有字母、空格或者连字符(-),我想不出什么好的办法。这个例子并不能达到我想要的效果。
name = u"Василий Соловьев-Седой"
r = re.compile(r'^([\s\-^\W\d_]+)$', re.U)
r.match(name) -> None
2 个回答
0
如果你只是想检查一下:
name = u"Василий Соловьев-Седой";
name = name.replace("-","").replace(" ","");
name.isalpha()
4
r = re.compile(r'^(?:[^\W\d_]|[\s-])+$', re.U)
[^\W\d_]
这个表达式可以用来匹配任何字母,也就是说,它会匹配所有的字母字符,但不会匹配数字和下划线。
[\s-]
这个表达式自然是用来匹配空格和连字符(也就是短横线)。