2012-02-28 16 views
3

私は以下の文字列の特定の部分を置き換えようとしています。python string数字を置き換える

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

私は、 '0'(decmial発生)がある場合<td>タグを削除する必要があります。すなわち、出力は

する必要があります私はこの

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

を試みたが成功しませんでした。誰もがこれを行うと私を助けてくださいでしたか?私は正規表現でそれを行うだろう事前

+5

http://meta.stackexchange.com/questions/16721を参照してください。/how-does-accept-rate-work – NPE

+1

一部のユーザーが回答を受け付けないのはなぜですか?実際には、どうして*受け入れることができない質問があるのですか?確かに、質問をした後、インターネットに完全にアクセスできなくなった多くの人々が永遠にそこにいることはできないでしょうか? –

+0

[必須の朗読](http://stackoverflow.com/a/1732454/566644) –

答えて

11

に役立ちます願っています。

データは完全なHTML文書ある場合は特に、あなたがそのようなlxml.htmlとして、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) 
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

あなたは<td>をチェックする正規表現を使用することができ、それが一致した場合、あなたがそれを置き換えるためにre.sub()を使用することができますあなたが望むものなら、なんでも。

my_stringはあなたが操作したい文字列が含まれている
pattern = '\"<td align=\"center\"> 0.[0-9]+ </td>\"' 
p = re.compile(pattern) 
p.sub('', my_string) 

は、正規表現の例の両方が動作している間、私は正規表現を使用してに対してをアドバイスでしょう、これは

関連する問題