我想要删除以下字符串和替换文字:
original_text = '<title>Kramer vs. Kramer</title>'
replacement_text = "Kramer V Kramer"
--> '<title>Kramer V Kramer</title>'
如何通过正则表达式替换?到目前为止,我有:
re.sub(r'title>.+</title>', replacement_text, original_text)
然而,这是删除整个标记。
答案 0 :(得分:1)
使用lookarounds。
>>> original_text = '<title>Kramer vs. Kramer</title>'
>>> replacement_text = "Kramer V Kramer"
>>> re.sub(r'(?<=<title>).+?(?=</title>)', replacement_text, original_text)
'<title>Kramer V Kramer</title>'
(?<=<title>)
lookbehind声称匹配必须先打开title
标记。
.+?
会对一个或多个字符进行非贪婪的匹配。
(?=</title)
断言匹配必须后跟结束标题标记。