我需要从段落中查找并替换一些标记的单词。str = "my name is [tag1]alan[/tag1] . i am a [tag2]python[/tag2] developer."tag1 和 tag2 是我需要查找的单词,并用另一个单词替换它们的中间内容。标记不受限制。它可能有超过10个。但每个标签都以相同的方式括起来,例如在方括号中,[tag][/tag]。我想要这样的结果,str = "my name is alan . i am a python developer."有没有办法使用正则表达式做到这一点?不使用美丽的soup。
2 回答

慕森卡
TA贡献1806条经验 获得超8个赞
使用正则表达式。
前任:
import re
string = "my name is [tag1]alan[/tag1]. i am a [tag2]python[/tag2] developer."
print(re.sub(r"(\[.*?\])", "", string))
# --> my name is alan. i am a python developer.

慕运维8079593
TA贡献1876条经验 获得超5个赞
您可以使用以下正则表达式:
import re
my_str = 'my name is [tag1]alan[/tag1]. i am a [tag2]python[/tag2] developer.'
re.sub(r'\[[/]*tag\d+?\]', '', my_str )
输出:
'my name is alan . i am a python developer.'
正则表达式说明:
\[
= 开头为[
[/]*
= 下一个字符可以是,也可以不是/
tag
= 必须包含字符串tag
\d+?
= 必须包含一个数字\]
= 结尾为]
添加回答
举报
0/150
提交
取消