Я определилнеожиданное поведение re.sub
s='f(x) has an occ of x but no y'
def italicize_math(line):
p="(\W|^)(x|y|z|f|g|h)(\W|$)"
repl=r"\1<i>\2</i>\3"
return re.sub(p,repl,line)
и сделал следующий вызов:
print(italicize_math(s)
Результат является
'<i>f</i>(x) has an occ of <i>x</i> but no <i>y</i>'
, который не то, что я ожидал. Я хотел вместо этого:
'<i>f</i>(<i>x</i>) has an occ of <i>x</i> but no <i>y</i>'
Может кто-нибудь сказать мне, почему первое вхождение й не было заключено в внутри «Я» тегов?
Решения, которые я получил, было довольно хорошо, но теперь я понимаю, что нужно что-то более мощное, как словоразделы в обеспечиваемой \ Ь не являюсь ограничительными достаточно. Я бы хотел, чтобы 4x было преобразовано в 4 x. Другими словами, наличие 4 рядом с x должно быть границей. Я посмотрю на обычные утверждения. – user1741137
Благодаря приведенным ниже выводам я обнаружил, что p = '(? \ 1 «соответствует моим потребностям – user1741137