Как я могу сделать сопоставление с шаблоном, если он не внутри тега HTML?
Вот моя попытка ниже. У кого-нибудь есть лучший / другой подход?
import re
inputstr = 'mary had a <b class="foo"> little loomb</b>'
rx = re.compile('[aob]')
repl = 'x'
outputstr = ''
i = 0
for astr in re.compile(r'(<[^>]*>)').split(inputstr):
i = 1 - i
if i:
astr = re.sub(rx, repl, astr)
outputstr += astr
print outputstr
выход:
mxry hxd x <b class="foo"> little lxxmx</b>
Примечания:
- Шаблон <[^>] *> для соответствия тегам HTML, очевидно, имеет недостатки - я написал это быстро и не учел возможность использования угловых скобок в атрибутах в кавычках (например, '" /> '). Он также не учитывает теги или комментарии или