gpt4 book ai didi

Python - 正则表达式查找字符串中的所有匹配项并替换

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:06 29 4
gpt4 key购买 nike

我在使用正则表达式替换字符串时遇到问题,似乎我无法让它工作

string = "<font x=''>test</font> <font y=''>test2</font> <font z=''>test3</font>"
if re.search("(<font .*?>)", string, re.IGNORECASE):
r = re.compile(r"<font (?P<name>.*?)>.*?</font>", re.IGNORECASE)
string = r.sub(r'', string)

出于某种原因,所有正则表达式都删除了整个字符串 ''。它应该返回为 test test2 test3

最佳答案

在这里,

>>> import re
>>> string = "<font x=''>test</font> <font y=''>test2</font> <font z=''>test3</font>"
>>> if re.search("(<font .*?>)", string, re.IGNORECASE):
... r = re.compile(r"</?font.*?>", re.IGNORECASE)
... string = r.sub(r'', string)
...
>>> string
'test test2 test3'

DEMO

图案说明:

  • </?font.*?>此正则表达式将匹配所有开始和结束字体标签。通过添加 ?/之后将使前一个字符为 /可选。
  • .*?将进行最短的匹配。 ?*之后会强制正则表达式引擎进行尽可能短的匹配,因为 *默认是贪心的。它可以尽可能多地消耗这么多字符。
  • >匹配 >字面上的符号。
  • re.IGNORECASE称为不区分大小写的修饰符。

关于Python - 正则表达式查找字符串中的所有匹配项并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26294245/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com