Ejercicio 7a
This commit is contained in:
parent
6ddf94087d
commit
2984790c53
|
@ -0,0 +1,42 @@
|
||||||
|
import re
|
||||||
|
import pyperclip
|
||||||
|
|
||||||
|
def to_int(string):
|
||||||
|
string = re.sub(r"\D", "", string)
|
||||||
|
if string:
|
||||||
|
return int(string)
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def rgx_phones():
|
||||||
|
return re.compile(
|
||||||
|
r"((\+(\d+)\s*)?(([ |\d|\-|\.|\(|\)]){7,}\d)(\s+ext\S*\s+(\d+))?)", re.I
|
||||||
|
)
|
||||||
|
|
||||||
|
def rgx_emails():
|
||||||
|
return re.compile(r"[\w\-]+@[\w\-]+\.\w{2,}", re.I)
|
||||||
|
|
||||||
|
def parse_phone(phone):
|
||||||
|
lbraces = len(re.findall(r'.*\(.*', phone[0]))
|
||||||
|
rbraces = len(re.findall(r'.*\).*', phone[0]))
|
||||||
|
if lbraces == rbraces and re.match(r'^[\+|\d]', phone[0]):
|
||||||
|
code = to_int(phone[2])
|
||||||
|
ext = to_int(phone[6])
|
||||||
|
res = to_int(phone[3])
|
||||||
|
res = to_int(phone[3])
|
||||||
|
res = f"+{code} {res}" if code else res
|
||||||
|
res = f"{res} ext. {ext}" if ext else res
|
||||||
|
return res
|
||||||
|
|
||||||
|
def get_phones(content):
|
||||||
|
return list(filter(None, map(parse_phone, rgx_phones().findall(content))))
|
||||||
|
|
||||||
|
content = pyperclip.paste()
|
||||||
|
phones = get_phones(content)
|
||||||
|
emails = rgx_emails().findall(content)
|
||||||
|
|
||||||
|
for phone in phones:
|
||||||
|
print(phone)
|
||||||
|
|
||||||
|
for email in emails:
|
||||||
|
print(email)
|
|
@ -0,0 +1 @@
|
||||||
|
pyperclip
|
Loading…
Reference in New Issue