【问题标题】:python string replace digitspython字符串替换数字
【发布时间】:2012-03-17 18:55:00
【问题描述】:

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

'''<td align="center"> 5 </td> <td> align="center"> 0.0001 </td>'''

如果有“0”,我需要删除&lt;td&gt; 标签(十进制出现)。即输出应该是

'''<td align="center"> 5 </td>'''

我试过了

data = ' '.join(data.split())<br>
l = data.replace('<td align="center"> 0.r"\d" </td>', "")

但没有成功。谁能帮我做这件事。

提前致谢

【问题讨论】:

标签: python regex string replace


【解决方案1】:

虽然这两个正则表达式示例都有效,但我建议反对使用正则表达式。

特别是如果数据是完整的 html 文档,您应该使用 html-aware 解析器,例如 lxml.html e.g.:

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)

【讨论】:

    【解决方案2】:

    我会用正则表达式来做:

    import re
    s = "<td align='center'> 5 </td><td align='center'>0.00001</td>"
    re.sub("<td align='center'>0.\d+</td>", "", s)
    

    【讨论】:

      【解决方案3】:

      您可以使用正则表达式检查&lt;td&gt;,如果匹配,您可以使用re.sub() 将其替换为您想要的任何内容。

      pattern = '\"<td align=\"center\"> 0.[0-9]+ </td>\"'
      p = re.compile(pattern)
      p.sub('', my_string)
      

      其中my_string 包含您要操作的字符串,希望对您有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-12
        • 1970-01-01
        • 2012-04-26
        相关资源
        最近更新 更多