ソースコードのセットから電子メールアドレスを再正規化しようとしています。データは、<a href>
タグの属性として見つけることができます。これは次のとおりです:data-email="[email protected]"
HTMLからの電子メールの正規表現
私はかなり正規表現に新しいとこれを思い付いた:/\w+\s*=\s*".*?"/
しかし、それは動作していないようです。それの周りに私の頭を上げることはすべて難しいです。
私は何ができますか?
ありがとうございました。
ソースコードのセットから電子メールアドレスを再正規化しようとしています。データは、<a href>
タグの属性として見つけることができます。これは次のとおりです:data-email="[email protected]"
HTMLからの電子メールの正規表現
私はかなり正規表現に新しいとこれを思い付いた:/\w+\s*=\s*".*?"/
しかし、それは動作していないようです。それの周りに私の頭を上げることはすべて難しいです。
私は何ができますか?
ありがとうございました。
ソースコードがHTMLであれば、HTMLパーサーを使用する方が簡単ではないでしょうか?あなたは、例えば、lxml使用することができます
from lxml import etree
html = etree.HTML("""
<html>
<head>
<title>History of Roundish Stones in the Paleozoic Era</title>
</head>
<body>
<a href="#" data-email="[email protected]">Andrew S. Johnson</a>
<a href="#" data-email="[email protected]">E. Idle</a>
</body>
</html>
""")
print(html.xpath('//@data-email'))
この版画:
['[email protected]', '[email protected]']
私が正しくあなたの質問を取得する場合、これはあなたが電子メールアドレスを抽出する必要があるかもしれないものである:
>>> import re
>>> print(re.findall(r'(?<=data-email=")[^"]*(?=")', '<b><a href="/abcd.html" data-email="[email protected]">abcd</a></b>'))
['[email protected]']
をあなたは以下のように使用して電子メールアドレスを取得することができます。 私はいくつかの例を投稿することができれば、あなたがそれを扱っているものが何であるか分かりません。しかし、これを試すことができます、それはあなたを助けるかもしれません。
re.compile("([\w\-\.][email protected](\w[\w\-]+\.)+[\w\-]+)")
これは、あなたが得るのを助ける"[email protected]"
BeautifulSoupはあなたの友達です:
from bs4 import BeautifulSoup as BS
emails = []
soup = BS(html_string, 'html5lib')
for a in soup.findAll('a'):
try:
emails.append(a['data-email'])
except KeyError:
continue
はあなたにもいくつかの例を投稿してもらえますか? – AKS
可能性のある複製http://stackoverflow.com/questions/28888194/extract-emails-from-html-using-regex?rq=1 – Ashish
[Regexで電子メールアドレスの検証を停止する](https://davidcel.is/posts)/stop-validating-email-addresses-with-regex /) –