0
我試圖取代西里爾文字的整機外觀以文本:正則表達式:應用re.sub(), B和西裏爾字母
# -*- coding: utf-8 -*-
import re
S = u"раз Два трИ".lower()
print re.sub(ur"\bдва\b", u"четыре", S, re.U)
打印 「раздватри」,而 「разчетыретри」是期待。
同時搜索()和的findAll()效果很好:
print re.search(ur"\bдва\b", S, re.U).group(0)
print re.findall(ur"\bдва\b", S, re.U)
因此,與應用re.sub()唯一的問題
拉丁字符做工精良:
S = u"one Two threE".lower()
print re.sub(ur"\btwo\b", u"four", S, re.U)
如果我嘗試以下方法,它會吞下空格(並且看起來很難看:
print re.sub(u"[^а-яё\d]два[^а-яё\d]", u"четыре", S)
一個儘量保持空間不起作用:
print re.sub(u"(?:[^а-яё\d])(два)(?:[^а-яё\d])", u"четыре", S)
更換沒有幫助過:
S = u"раз Два трИ".lower()
print S
S.replace(u"два", u"четыре")
print S
打印 「раздватри」 兩次。