搜索和替换 - .sub(replacement,string [,count = 0]) - 不适用于特殊字符

时间:2017-01-22 16:56:38

标签: python regex replace

我正在学习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上测试了正则表达式模式,但它确实有效。我无法理解为什么代码不起作用。

1 个答案:

答案 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也可以。