【发布时间】:2012-02-03 11:15:40
【问题描述】:
我已经阅读了一个很好的 unicode 字符串解决方案here,但我需要检查整个字符串是否为字母、空格或破折号,我想不出任何解决方案。该示例没有按我的意愿工作。
name = u"Василий Соловьев-Седой"
r = re.compile(r'^([\s\-^\W\d_]+)$', re.U)
r.match(name) -> None
【问题讨论】:
-
请准确定义“字母”、“空格”和“破折号”的含义。
-
字母 - 任何 unicode 字母,空格 - 空格 :),破折号 - “-”符号
-
我认为他的意思是 [a-zA-Z[UNICODE_LETTERS] -]*,这里的问题是 [UNICODE_LETTERS] 对吗?
-
@Eregrith,没有。要仅检查字符串中的 unicode 字母,r = re.compile(r'[^\W\d_]', re.U) 就足够了。它适用于字符串