我正在尝试在python 3 / django表单中验证地名。我希望与以下字符串匹配:Los Angeles
,Canada
,中国
和Россия
。也就是说,字符串包含:
我目前使用的模式是r'^[^\W\d]+$'
,如this stack overflow question中所述。但是它似乎只匹配模式r'^[a-zA-Z]+$
。也就是说,Россия
,Los Angeles
和中国
不匹配,只有Canada
。
我的代码示例:
import re
re.search(r'^[^\W\d]+$', 'Россия')
什么都不返回。
答案 0 :(得分:3)
您的示例适用于我,但会找到下划线而不是空格。这有效:
>>> re.search(r'^(?:[^\W\d_]| )+$', 'Los Angeles')
<_sre.SRE_Match object at 0x0000000003C612A0>
>>> re.search(r'^(?:[^\W\d_]| )+$', 'Россия')
<_sre.SRE_Match object at 0x0000000003A0D030>
>>> re.search(r'^(?:[^\W\d_]| )+$', 'Los_Angeles') # not found
>>> re.search(r'^(?:[^\W\d_]| )+$', '中国')
<_sre.SRE_Match object at 0x0000000003C612A0>