-
Notifications
You must be signed in to change notification settings - Fork 2
/
phoneEmailScraper.py
52 lines (36 loc) · 1.33 KB
/
phoneEmailScraper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#! python3
# Create a regex for phone numbers
import re
phoneRegex = re.compile(r'''
# 415-555-1234, 555-0000, (415) 555-0000, 555-0000 ext 12345, ext. 12345, x12345
(
((\d\d\d) | (\(\d\d\d)))? # area code (optional)
(\s|-) # first seprator
\d\d\d # first 3 digits
- # seprator
\d\d\d\d # last 4 digits
(((ext(\.)?\s)|x) # extension word-part (optional)
(\d{2,5}))?
) # extension word-number (optional)
''', re.VERBOSE )
# re.compile(r'((\d\d\d) | (\(\d\d\d)))?(\s|-)\d\d\d-\d\d\d\d(((ext(\.)?\s) | x)(\d{2,5}))?')
# Create a regex for email address
# some.+_thing@(\d{2,5})?.com
emailRegex = re.compile(r'''
[a-zA-Z0-9_.+]+ # name part
@ # @ symbol
[a-zA-Z0-9_.+]+ # domain name part
''', re.VERBOSE)
# Get the text off the clipboard
text = 'Dr.Barbara Jones x107 870-864-7190 brjones@southark.edu'
# Extract the email/phone numbers from this text
extractPhone = phoneRegex.findall(text)
extractEmail = emailRegex.findall(text)
allPhoneNumbers = []
for phoneNumber in extractPhone:
allPhoneNumbers.append(phoneNumber[0])
print(allPhoneNumbers)
print(extractEmail)
# TODO : Copy the extracted email/phone to the clipboard
result = '\n'.join(allPhoneNumbers) + '\n' + '\n'.join(extractEmail)
print(result)