python 正则替换问题

问题描述

现有一段字符串style="font-family: 微软雅黑; font-size: 6.67pt; vertical-align: super">1,2</span> ,想要将其中的1,2替换为[1,2],其中1,2只是一个例子可能有多个数字但是都是以,隔开。

问题出现的环境背景及自己尝试过哪些方法

匹配到1,2后也不知道该怎么后续处理,改变原字符串

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

现有一段字符串style="font-family: 微软雅黑; font-size: 6.67pt; vertical-align: super">1,2</span> ,想要将其中的1,2替换为[1,2],其中1,2只是一个例子可能有多个数字但是都是以,隔开。求教,谢谢! 急求!

阅读 2.2k
2 个回答

处理这种问题建议你灵活一点.

replace能做吗?
可以的.当然有局限.我们为什么不直接尝试将><改成>[]<?
replace('">','>['),这个替换左边.
右边replace('</span>',']</span>')
怪low的是不是.

正则表达式写法:

a ="""<span style="font-family: 微软雅黑; font-size: 6.67pt; vertical-align: super: ">1,2</span>"""

pattern = re.compile("(<span.*?>)(\d.*?)(</span>)")
pattern.search(a).groups()
# ('<span style="font-family: \xe5\xbe\xae\xe8\xbd\xaf\xe9\x9b\x85\xe9\xbb\x91; font-size: #6.67pt; vertical-align: super">',
# '1,2',
# '</span>')
re.sub(pattern,r"\1[\2]\3",a)
'<span style="font-family: \xe5\xbe\xae\xe8\xbd\xaf\xe9\x9b\x85\xe9\xbb\x91; font-size: 6.67pt; vertical-align: super">[1,2]</span>'

为何要用正则进行匹配替换,如果是整个HTML文档,那么你可以借用 beautifulsoup 进行解析后,批量修改。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题