Python 正则表达式unicode替换不起作用

Python 正则表达式unicode替换不起作用,python,regex,unicode,Python,Regex,Unicode,我有以下python示例,但它不起作用: >>> replace = re.compile(ur'најавени', flags=re.IGNORECASE) >>> docText = replace.sub("најавени1",docText) >>> print docText трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбат

我有以下python示例,但它不起作用:

>>> replace = re.compile(ur'најавени', flags=re.IGNORECASE)

>>> docText = replace.sub("најавени1",docText)

>>> print docText

трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал

>>> docText = replace.sub(u"најавени1",docText)

>>> print docText

трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал

>>> docText = replace.sub(u"најавени1",docText,re.IGNORECASE)

>>> print docText

трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал
有什么提示吗?我只想替换文本中的字符串,它是用英语工作的,但不是用我的母语

第二次尝试:

>>> docText = "трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал"
>>> replace = re.compile(ur'Најавени', flags=re.IGNORECASE)
>>> docText = replace.sub(u"најавени1",docText,re.IGNORECASE)
>>> print docText
трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал

您需要指定支持unicode的字符串和正则表达式,如下所示:

>>> import re
>>> replace = re.compile(ur'најавени', flags=re.IGNORECASE | re.UNICODE)
>>> docText = u"трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал"
>>> print docText
трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал
>>> docText = replace.sub(u"најавени1",docText)
>>> print docText
трендафилов во мвр се најавени1 нови смени поврзани со безбедноста и борбата против организираниот криминал

您试图匹配的文件是否编码为utf-8?请尝试使用DoctText unicode…还尝试使用
аааааааааа
re.I
标志匹配
re.I
标志仅适用于ASCII范围文本,它不能正确地将unicode与我的知识相匹配。