なぜこの正規表現が一致しないのかについてのヘルプは<td>\n
などですか?私はpythex.orgでうまくテストしました。基本的には、私はちょうどmyfile.doc
と言うので、出力をクリーンアップしようとしています。また、私はそれがrepr(filename)
を見ずに言うのは難しいですが、私はあなたの問題はエスケープ改行文字と実際の改行文字の混乱だと思う(<td>)?\\n\s+(</td>)?
re.subは一致していないと思われます。
>>> from bs4 import BeautifulSoup
>>> from pprint import pprint
>>> import re
>>> soup = BeautifulSoup(open("/home/user/message_tracking.html"), "html.parser")
>>>
>>> filename = str(soup.findAll("td", text=re.compile(r"\.[a-z]{3,}")))
>>> print filename
[<td>\n myfile.doc\n </td>]
>>> duh = re.sub("(<td>)?\n\s+(</td>)?", '', filename)
>>> print duh
[<td>\n myfile.doc\n </td>]
? –
は投稿を更新します。 sec – dobbs
'BeautifulSoup'を含まないようにこれを単純化できますか?文字列リテラルに 'filename'を代入するだけで、簡単にコードを実行して何が起こるかを見ることができます。 – ArtOfWarfare