# !/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
を参照!