Xem lý thuyết RegEx ở đây
Xem format email ở đây
- Ví dụ Extract Email:
Code:
'''
Yêu cầu:
Dùng RegEx để lấy ra tất cả các địa chỉ email từ chuỗi txt (kết quả đưa vào list)
'''
import re
txt = 'Hello from shubhamg+199630@gmail.com to pri.ya@yahoo.co.kr,pr_iya@yahoo.com,priya@yahoo to-ny@yahoo.com.vn about the meeting @2PM'
#regex ="[a-zA-Z0-9!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+"
regex ="[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+"
email = re.findall(regex, txt)
print(email)
Kết quả:
C:\python>python Demo.py
['shubhamg+199630@gmail.com', 'pri.ya@yahoo.co.kr', 'pr_iya@yahoo.com', 'to-ny@yahoo.com.vn']C:\python>
- Ví dụ Extract IPv4:
Code:
'''
Yêu cầu:
Dùng RegEx để lấy ra tất cả các địa chỉ IPv4 từ chuỗi txt (kết quả đưa vào list)
'''
import re
txt = '12/30-04:09:41.070967 [**] [1:10000001:1] snort alert [1:0000001] [**] [classification ID: 0] [Priority ID: 0] {ICMP} 192.168.232.2:41676 -> 192.168.248.2:21'
#regex = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' # định dạng IPv4
#regex = r"[a-fA-F0-9]{4}\.[a-fA-F0-9]{4}\.[a-fA-F0-9]{4}" # định dạng địa chỉ MAC
'''
HOẶC
'''
regex = r'\d{1,3}(?:\.\d{1,3}){3}'
IPs = re.findall(regex, txt)
print(IPs)
Kết quả:
C:\python>python Demo.py
['192.168.232.2', '192.168.248.2']
C:\python>
- Ví dụ Extract Số điện thoại:
Code:
import re
'''
Lấy ra tất cả các số điện trong chuỗi txt
'''
txt =''' so dien thoai (84)-899-723-572, so thu 2 +84 123.456.789, so thu 3 +84 123 456 789
'''
reg4 = re.compile(r"""(
(\(\d+\)|\+\d+|\(\+\d+\))? # mã vùng, \+\d+: là dấu cộng, số xuất hiện 1 hoặc nhiều lần; \(\+\d+\): dấu mở ngoặc, dâu cộng, dấu đóng ngoặc; ()?: có thể có hoặc không
(\-|\.|\s)? # dấu trừ, dấu chấm, dấu cách hoặc không có gì cả
(\d+)
(\-|\.|\s)?
(\d+)
(\-|\.|\s)?
(\d+)
)""",re.VERBOSE)
match4 = reg4.findall(txt)
print (type(match4))
match4_phone = [match4[phone][0] for phone in range(len(match4))]
print(match4_phone)
Xong!