/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Học Python Qua Ví Dụ #019 Bài Tập - Regular Expression

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!


No comments:

Post a Comment

/*header slide*/