Pythonプログラミングの高速化-煩雑な作業を自動化(4)
1674 ワード
04.電話番号とE-mailアドレス抽出プログラム
(0)要件:
長いページや文章の中で、すべての電話番号とメールアドレスを見つけるには
(1)完了するタスククリップボードからテキスト を取得する.テキストのすべての電話番号とE-mailアドレス を見つけます.クリップボード に貼り付ける
(2)コードに必要なタスク pyperclipモジュールを使用して文字列をコピーおよび貼り付け は2つの正規表現を作成し、1つは電話番号に一致し、もう1つはE-mailアドレスに一致する である.は、2つの正規表現に対して、最初の一致 だけでなく、すべての一致を見つけた.一致する文字列をフォーマットし、 を貼り付けるための文字列に配置するテキストに一致が見つからない場合は、メッセージ が表示されます.
(3)電話番号に正規表現を作成する
(4)E-mailの正規表現を作成する
(5)クリップボードのテキストにすべての一致を見つける
(6)すべての一致は1つの文字列に接続され、クリップボードにコピーされる
(7)プログラムの実行
Webブラウザを開き、ページのすべてのテキストを選択してクリップボードにコピーし、このプログラムを実行します.
(0)要件:
長いページや文章の中で、すべての電話番号とメールアドレスを見つけるには
(1)完了するタスク
(2)コードに必要なタスク
(3)電話番号に正規表現を作成する
import pyperclip,re
phoneRegex = re.compile(r'''(
(\d{3}|\(\d{3}))?
(\s|-|\.)?
(\d{3})
(\s|-|\.)
(\d{4})
(\s*(ext|x|ext.)\s*(\d{2,5}))?
)''',re.VERBOSE)
(4)E-mailの正規表現を作成する
emailRegex = re.compile(r'''(
[a-zA-Z0-9._%+-]+
@
[a-zA-Z0-9.-]+
(\.[a-zA-Z]{2,4})
)''',re.VERBOSE)
(5)クリップボードのテキストにすべての一致を見つける
import pyperclip,re
phoneRegex = re.compile(r'''(
text = str(pyperclip.paste())
matches = []
for groups in phoneRegex.findall(text):
phoneNum = '-'.join([groups[1],groups[3],groups[5]])
if groups[8]!=' ':
phoneNum += ' x'+groups[8]
matches.append(phoneNum)
for groups in emailRegex.findall(text):
matches.append(groups[0])
(6)すべての一致は1つの文字列に接続され、クリップボードにコピーされる
for groups in emailReges.findall(text):
matches.append(groups[0])
if len(matches)>0:
pyperclip.copy('
'.join(matches))
print('Copied to clipboard:')
print('
'.join(matches))
else:
print('No phone numbers or email address found.')
(7)プログラムの実行
Webブラウザを開き、ページのすべてのテキストを選択してクリップボードにコピーし、このプログラムを実行します.