Python Phone And Email Address Extractor

投稿者: | 2017年2月19日
# !/user/bin/env python
# - Finds phone numbers and email address on the clipboard
# クリップボードから、電話番号とメールアドレスを見つける。

import re, pyperclip

phoneRegex = re.compile(r'''(
                (\d{3}|\(\d{3}\))?
                (\s|-|\.)?
                (\d{3})
                (\s|-|\.)
                (\d{4})
                (\s*(ext|x|ext.)\s*(\d{2,5}))?
                )''', re.VERBOSE)

# Create email regex
emailRegex = re.compile(r'''(
                    [a-zA-Z0-9._%+-]+
                    @
                    [a-zA-Z0-9.-]+
                    (\.[a-zA-Z]{2,4})
                    )''', re.VERBOSE)



def main():

    #Find matces in clipboard text
    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])


    # Copy results to clipboard.

    if len(matches) > 1:
        pyperclip.copy('\r\n'.join(matches))
        print('Copied to clipboard:')
        print('\r\n'.join(matches)) # \r\nは、windowsの仕様?
    else:
        print('No phone numbers or email address found.')

if __name__ == '__main__':
    main()

 

 

電話番号の形式とメールの形式の文字列を抜き出す。

例:

https://www.nostarch.com/contactus.htm

をctrl + A でコピーしてスクリプトを実行!

すると

電話番号とメールアドレスがクリップボードにコピーされている。

 

詳しい正規表現については、

http://docs.python.jp/3.6/library/re.html

を参照!

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください