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