python字符串替换数字

时间:2012-02-28 09:44:44

标签: python regex string replace

我正在尝试替换下面字符串的某些部分。

'''<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>', "")

但没有成功。任何人都可以帮我这样做。

提前致谢

3 个答案:

答案 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包含您要操作的字符串,希望这有帮助