我正在学习Python和Regex,我做了一些简单的练习。 这里我有一个字符串,我想用html代码替换特殊字符。代码如下:
str= '\nAxes.hist\tPlot a histogram.\nAxes.hist2d\tMake a 2D histogram plot.\nContours\nAxes.clabel\tLabel a contour plot.\nAxes.contour\tPlot contours.'
p = re.compile('(\\t)')
p.sub('<\span>', str)
p = re.compile('(\\n)')
p.sub('<p>', str)
此代码保留特殊字符(\n
和\t
)不变。
我已经在regex101.com上测试了正则表达式模式,但它确实有效。我无法理解为什么代码不起作用。
答案 0 :(得分:0)
问题在于您正在执行sub
方法而不是捕获
结果。它不会就地更改字符串。它返回 new
字符串。
因此(由于上述原因,使用s
代替str
):
p = re.compile('(\\t)')
s = p.sub('<\span>', s)
p = re.compile('(\\n)')
s = p.sub('<p>', s)
请注意\n
和\t
也可以。