我正在尝试替换下面字符串的某些部分。
'''<td align="center"> 5 </td> <td> align="center"> 0.0001 </td>'''
如果存在'0。'(decmial occurrence),我需要删除<td>
标记。即输出应为
'''<td align="center"> 5 </td>'''
我试过这个
data = ' '.join(data.split())<br>
l = data.replace('<td align="center"> 0.r"\d" </td>', "")
但没有成功。任何人都可以帮我这样做。
提前致谢
答案 0 :(得分:11)
虽然两个正则表达式示例都有效,但我会使用regexp建议反对。
特别是如果数据是完整的html文档,你应该选择html感知解析器,例如lxml.html
例如:
from lxml import html
t = html.fromstring(text)
tds = t.xpath("table/tbody/tr[2]/td")
for td in tds:
if tds.text.startswith("0."):
td.getparent().remove(td)
text = html.tostring(t)
答案 1 :(得分:2)
我会用正则表达式来做:
import re
s = "<td align='center'> 5 </td><td align='center'>0.00001</td>"
re.sub("<td align='center'>0.\d+</td>", "", s)
答案 2 :(得分:2)
您可以使用正则表达式来检查<td>
,如果匹配,您可以使用re.sub()
将其替换为您想要的内容。
pattern = '\"<td align=\"center\"> 0.[0-9]+ </td>\"'
p = re.compile(pattern)
p.sub('', my_string)
其中my_string
包含您要操作的字符串,希望这有帮助