我正在尝试替换表格的所有表达式
\[something\]
在一个字符串中
\[<img src='something'>\]
由于\
和[
]
有特殊字符,我需要他们ESPACE(所以\\
,\[
和\]
),因此我的代码会
def repl(m):
return "<img src='"+m.group(1)+"'>"
print re.sub("\\\[(.*?)\\\]", repl, "frfrfr\nfrrffr<p>\[something\]</p>frff\nfrfrr", re.S)
但是,这将返回原始字符串。有人可以指出我的错误吗?
\
正确逃脱,或r'raw string'
按以下说明使用。
>>> print re.sub(r"\\\[(.*?)\\\]", repl, "frfrfr\nfrrffr<p>\[something\]</p>frff\nfrfrr", flags=re.S)
frfrfr
frrffr<p><img src='something'></p>frff
frfrr
>>> print re.sub("\\\\\\[(.*?)\\\\\\]", repl, "frfrfr\nfrrffr<p>\[something\]</p>frff\nfrfrr", flags=re.S)
frfrfr
frrffr<p><img src='something'></p>frff
frfrr
更新
的第四个参数re.sub
是count
,不是flags
。要指定标志,请使用关键字参数。否则,re.S
被识别为count
。
>>> print re.sub(r"\\\[(.*?)\\\]", repl, "frfrfr\nfrrffr<p>\[something\nblah\]</p>frff\nfrfrr", re.S)
frfrfr
frrffr<p>\[something
blah\]</p>frff
frfrr
>>> print re.sub(r"\\\[(.*?)\\\]", repl, "frfrfr\nfrrffr<p>\[something\nblah\]</p>frff\nfrfrr", flags=re.S)
frfrfr
frrffr<p><img src='something
blah'></p>frff
frfrr
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句