summaryrefslogtreecommitdiff
path: root/Chap7ProjPhoneandEmail.py
diff options
context:
space:
mode:
Diffstat (limited to 'Chap7ProjPhoneandEmail.py')
-rw-r--r--Chap7ProjPhoneandEmail.py42
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.')