Regex Python 2.7是否更正语法以重新匹配Unicode字符串中的重音字符?
我有一个带有单个参数的函数,该参数是unicode字符串,其中包含重音字符。我想在该字符串中找到一个或多个模式实例并将其打印出来 我不知道如何正确设置模式的格式,或者如何使用unicode正确地使用re.match,或者如何使用unicode提取match.groups()。使用ASCII要容易得多。啊 Python 2.7Regex Python 2.7是否更正语法以重新匹配Unicode字符串中的重音字符?,regex,python-2.7,unicode,Regex,Python 2.7,Unicode,我有一个带有单个参数的函数,该参数是unicode字符串,其中包含重音字符。我想在该字符串中找到一个或多个模式实例并将其打印出来 我不知道如何正确设置模式的格式,或者如何使用unicode正确地使用re.match,或者如何使用unicode提取match.groups()。使用ASCII要容易得多。啊 Python 2.7 sentence = "These characters, ÄÜ, are special." def findInSentence(sentence): pa
sentence = "These characters, ÄÜ, are special."
def findInSentence(sentence):
pattern = re.compile("ÄÜ", re.UNICODE)
return re.match(sentence, pattern).groups()
使用
re.search
而不是re.match
re.match
锚定在字符串的开头,而re.search
搜索整个字符串
search
和match
的语法如下:
re.search(pattern, string, flags=0)
re.match(pattern, string, flags=0)
您已经反转了模式和字符串。正确使用Unicode有许多问题:
re.search
您的搜索模式中也没有groups()
,因此使用.group(0)
打印匹配项(如果存在)
请注意,在本例中不需要使用re.UNICODE
,因为它只影响特殊匹配序列\w
,\w
,\b
,\b
,\d
,\s
和\s
的工作方式,并且它们没有被使用
# coding: utf-8
import re
sentence = u"These characters, ÄÜ, are special."
def findInSentence(sentence):
pattern = re.compile(u"ÄÜ", re.UNICODE)
return re.search(pattern, sentence).group(0)
print findInSentence(sentence)
输出:
ÄÜ
那不行。我无法对字符串进行编码或使用re。函数不会出错。@user1473511:交换模式和字符串,请参阅我的编辑。句子=“这些字符是特殊的。”此行会抛出一个错误。谢谢。这是一个问题,但是还有其他一些事情阻止了控制台的工作。再次感谢你。