尝试在Python中使用正则表达式来匹配单词字符,国际单词字符(例如中文),并且无法理解它,所以需要一些帮助。
我试过了:
ur'(?ui)[\w]'
并且它匹配例如:"斗牛"
但是如果我在字符串中加上问号或分号(例如"斗牛?!"),它也匹配。
接下来,我尝试添加字符串开头和字符串结尾的符号,例如。 :ur'^(?ui)[\w]$'
并且它没有为"斗牛"返回匹配,即使从我能告诉它应该做什么?!
任何帮助非常感谢。
答案 0 :(得分:1)
您的输入包含两个代码点,因此您需要匹配多个字符:
ur'^(?ui)[\w]+$'
此处不需要[...]
字符类,因为\w
是它自己的完整类:
ur'(?ui)^\w+$'
演示:
>>> import re
>>> pattern = re.compile(ur'(?ui)^\w+$')
>>> pattern.search(u'斗牛')
<_sre.SRE_Match object at 0x10884e168>
>>> pattern.search(u'斗牛?') is None
True