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>'
任何人都可以告訴我爲什麼x的第一次出現沒有被包含在「我」標籤內?
該解決方案還不錯,但現在我知道我需要的東西,如單詞邊界更強大的通過\ B中提供不限制足夠。我想將4x轉換爲4 x。換句話說,x旁邊的4應該是一個邊界。我會看看前瞻斷言。 – user1741137
由於下面的線索,我發現p ='(?<![A-Za-z])([xyzfgh])(?![A-Za-z])'和repl =' \ 1 '符合我的需求 – user1741137