如何在Python中替换具有不同模式(HTML标记)的字符?

时间:2012-03-23 06:53:34

标签: python regex

我有一个字符串:

hello #this# is #some text string# text text

我想将其改为:

hello <sometag>this</sometag> is <sometag>some text string</sometag> text text

也就是说,将第一个#替换为HTML标记,将第二个#替换为结束标记,依此类推。我正在使用Python;任何人都知道任何正则表达式或其他方法吗?

2 个答案:

答案 0 :(得分:1)

如果你想HTML加粗由空格包围的散列分隔的所有内容,你可以这样做:

import regex
regex = re.compile('(\s?)#(.*?)#(\s+)')
str = 'hello #this# is #some text string# text text'
str = re.sub(regex, '\\1<b>\\2</b>\\3', str)

如果要在哈希周围没有空格的情况下进行匹配,请将相关行更改为:

regex = re.compile('#(.*?)#')
re.sub(regex, '<b>\\1</b>', str)

但这只会匹配成对的哈希值。在您的示例中,它会产生'<b>text</b>text text<b>text</b>text#text text'

答案 1 :(得分:0)

如果你只是想删除哈希(#),一个简单的替换就可以完成这项任务:

 str=str.replace('#','')