diff options
Diffstat (limited to 'Chap7ProjPhoneandEmail.py')
-rw-r--r-- | Chap7ProjPhoneandEmail.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Chap7ProjPhoneandEmail.py b/Chap7ProjPhoneandEmail.py new file mode 100644 index 0000000..4161c5a --- /dev/null +++ b/Chap7ProjPhoneandEmail.py @@ -0,0 +1,42 @@ +#! /usr/bin/env python3 + +# Project Chap. 7 +# Phone number and email address extractor + +import re +import pyperclip + +phoneRegex = re.compile(r'''( + (\d{3}|\(\d{3}\))? #area code + (\s|-|\.)? #seperator + (\d{3}) #first three digits + (\s|-|\.) #seperator + (\d{4}) #last four digits + (\s*(ext|x|ext.)\s*(\d{2,5}))? #extension + )''', re.VERBOSE) + +emailRegex = re.compile(r'''( + [a-zA-Z0-9._%+-]+ #username + @ #symbol + [a-zA-Z0-9.-]+ #domain name + (\.[a-zA-Z]{2.4}) #dot something + )''', re.VERBOSE) + +# Find matches in the 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' + gruops[8] + matches.append(phoneNum) +for groups in emailRegex.findall(text): + matches.append(groups[0]) + +# Copy results to clipboard +if len(matches) > 0: + pyperclip.copy('\n'.join(matches)) + print('Copied to the clipboard:') + print('\n'.join(matches)) +else: + print('No phone number or email matches were found.') |