Ví dụ về Regex của Python

Vi Du Ve Regex Cua Python



Dạng đầy đủ của biểu thức chính quy là Biểu thức chính quy. Đây là một tính năng quan trọng của bất kỳ ngôn ngữ lập trình nào. Đó là một mẫu chuỗi được sử dụng để khớp, tìm kiếm hoặc thay thế các chuỗi trong một giá trị chuỗi. Mẫu biểu thức chính quy có thể được sử dụng trong tập lệnh Python bằng cách sử dụng mô-đun “re” của Python. Mô-đun này có nhiều loại hàm để thực hiện các thao tác chuỗi khác nhau. Các siêu ký tự khác nhau và các chuỗi đặc biệt được sử dụng để xác định các mẫu biểu thức chính quy nhằm tìm kiếm hoặc thay thế các tác vụ. Mục đích của việc sử dụng một số siêu ký tự, chuỗi đặc biệt và phương thức biểu thức chính quy thường được sử dụng trong tập lệnh Python được trình bày trong hướng dẫn này.

Một số siêu ký tự thường được sử dụng trong biểu thức chính quy:









Nhân vật Mục đích
'+' Nó được sử dụng để khớp với một hoặc nhiều lần xuất hiện của một ký tự cụ thể trong chuỗi.
'*' Nó được sử dụng để khớp 0 hoặc nhiều lần xuất hiện của một ký tự cụ thể trong chuỗi.
'?' Nó được sử dụng để khớp với 0 hoặc một lần xuất hiện của một ký tự cụ thể trong chuỗi.
'^' Nó được sử dụng để khớp với ký tự hoặc chuỗi cụ thể ở đầu chuỗi.
'$' Nó được sử dụng để khớp với ký tự hoặc chuỗi cụ thể ở cuối chuỗi.
'|' Nó được sử dụng để khớp với bất kỳ chuỗi nào trong một chuỗi. Nó hoạt động giống như logic OR.
‘[]’ Nó được sử dụng để khớp với một loạt các ký tự.
'{}' Nó được sử dụng để khớp với một số ký tự cụ thể.



Một số chuỗi đặc biệt thường được sử dụng trong biểu thức chính quy:





trình tự Mục đích
'\MỘT' Nó được sử dụng để khớp với ký tự cụ thể ở đầu chuỗi. Nó hoạt động giống như ký tự “^”.
‘\b’, ‘\B’ “\b” được sử dụng để khớp với chuỗi chứa ký tự hoặc từ cụ thể ở đầu hoặc cuối chuỗi. “\B” hoạt động ngược lại với “\b”.
‘\d’, ‘\D’ “\d” được sử dụng để khớp với số thập phân trong chuỗi tương tự như “[0-9]”. “\D” hoạt động ngược lại với “\d”.
‘\s’, ‘\S’ “\s” được sử dụng để khớp với khoảng trắng trong chuỗi tương tự như “[\n\t\r\v]”. “\S” hoạt động ngược lại với “\s”.
‘\w’, ‘\W’ “\w” được sử dụng để khớp các ký tự chữ cái và số trong chuỗi. “\W” hoạt động ngược lại với “\w”.
'\VỚI' Nó được sử dụng để khớp với ký tự cụ thể ở cuối chuỗi. Nó hoạt động giống như ký tự “$”.

Ví dụ 1: So khớp chuỗi bằng hàm Match()

Hàm match() được sử dụng để khớp với mẫu biểu thức chính quy ở đầu chuỗi. Cú pháp của hàm này được đưa ra như sau:



Cú pháp:

kết hợp lại ( dây chuyền, cờ = 0 )

Ở đây, đối số đầu tiên được sử dụng để xác định mẫu biểu thức chính quy. Đối số thứ hai được sử dụng để xác định chuỗi chính. Đối số thứ ba là tùy chọn và được sử dụng để xác định các loại cờ khác nhau.

Tạo một tệp Python có tập lệnh sau khớp với mẫu biểu thức chính quy với một chuỗi được xác định bằng hàm match(). Đầu tiên, một mẫu biểu thức chính quy đã xác định sẽ được sử dụng để khớp. Tiếp theo, một từ tìm kiếm được lấy từ người dùng và được sử dụng làm mẫu biểu thức chính quy để khớp với giá trị chuỗi. Nếu tìm thấy bất kỳ kết quả khớp nào, từ tìm kiếm sẽ được in. Nếu không, chuỗi “Không tìm thấy giá trị khớp” sẽ được in.

#Nhập mô-đun cần thiết
nhập lại

#Xác định hàm in kết quả phù hợp
chắc chắn trận đấuString ( ) :
#Kiểm tra giá trị trả về của hàm match()
nếu như cùng với ! = Không:
in ( ''' + mat.group ( ) + '' được tìm thấy trong '' + strValue + ''' )
khác:
in ( 'Không tìm thấy giá trị phù hợp.' )

#Xác định giá trị chuỗi
strValue = 'Vào trước ra trước.'
#So khớp chuỗi dựa trên mẫu
mat = tái đấu ( '^Đầu tiên' , strValue )
#Gọi hàm in kết quả trận đấu
trận đấuString ( )

#Lấy chuỗi tìm kiếm
inValue = đầu vào ( 'Nhập giá trị tìm kiếm:' )
mat = tái đấu ( inValue + , strValue )
#Gọi hàm in kết quả trận đấu
trận đấuString ( )

Đầu ra sau đây xuất hiện cho giá trị đầu vào “đầu tiên”:

Ví dụ 2: Tìm chuỗi bằng hàm Findall()

Hàm findall() được sử dụng để trả về tất cả các từ trùng khớp được tìm thấy trong chuỗi chính dưới dạng một bộ.

Cú pháp:

tìm lại ( dây chuyền, cờ = 0 )

Ở đây, đối số đầu tiên được sử dụng để xác định mẫu biểu thức chính quy. Đối số thứ hai được sử dụng để xác định chuỗi chính. Đối số thứ ba là tùy chọn và được sử dụng để xác định các loại cờ khác nhau.

Tạo một tệp Python với tập lệnh sau lấy giá trị chuỗi chính và giá trị chuỗi tìm kiếm từ người dùng. Tiếp theo, sử dụng từ tìm kiếm  trong mẫu biểu thức chính quy để tìm từ tìm kiếm trong chuỗi chính. Tổng số kết quả trùng khớp được in ở đầu ra.

#Nhập mô-đun cần thiết
nhập lại

#Lấy một giá trị chuỗi
inValue = đầu vào ( 'Nhập một chuỗi:' )

#Lấy một từ tìm kiếm
srcValue = đầu vào ( 'Nhập từ tìm kiếm:' )

#Tìm kiếm từ trong chuỗi
srcResult = re.findall ( srcValue + '\TRONG*' , giá trị )
#In kết quả tìm kiếm
in ( 'Từ '' + srcValue + '' được tìm thấy trong chuỗi '
+ str ( chỉ một ( srcResult ) ) + 'lần.' )

Theo kết quả đầu ra, từ tìm kiếm “ăn” được tìm thấy hai lần trong chuỗi chính “Chúng tôi ăn để sống và không sống để ăn”.

Ví dụ 3: Tìm kiếm chuỗi bằng hàm Search()

Search() là một hàm khác để tìm kiếm một mẫu cụ thể trong một giá trị chuỗi. Nó chứa các đối số giống như hàm match() và findall(). Tạo một tệp Python có đoạn mã sau để tìm kiếm từ “Python” trong một giá trị chuỗi sẽ được lấy từ người dùng. Nếu từ tìm kiếm tồn tại trong giá trị đầu vào, thông báo thành công sẽ được in. Nếu không, thông báo lỗi sẽ được in.

#Nhập lại mô-đun
nhập lại

#Lấy một giá trị chuỗi
inValue = đầu vào ( 'Nhập một chuỗi:' )
#Tìm kiếm từ cụ thể trong giá trị chuỗi
srcResult = nghiên cứu ( r 'Python\w*' , giá trị )

#Kiểm tra từ tìm kiếm có được tìm thấy hay không
nếu như srcKết quả:
in ( ''' + srcResult.group ( ) + '' được tìm thấy trong '' + giá trị + ''' )
khác:
in ( 'Chuỗi tìm kiếm không được tìm thấy.' )

Đầu ra:

Đầu ra sau đây xuất hiện nếu chuỗi đầu vào là “Tôi thích lập trình Python”:

Đầu ra sau đây xuất hiện nếu chuỗi đầu vào là “Tôi thích lập trình PHP”:

Ví dụ 4: Thay thế chuỗi bằng hàm Sub()

Hàm sub() được sử dụng để tìm kiếm một chuỗi cụ thể dựa trên mẫu và thay thế nó bằng một từ khác. Cú pháp của hàm này được đưa ra như sau:

Cú pháp:

re.sub ( mẫu, chuỗi thay thế, chuỗi chính )

Đối số đầu tiên của hàm này chứa mẫu được sử dụng để tìm kiếm chuỗi cụ thể trong chuỗi chính.

Đối số thứ hai của hàm này chứa giá trị chuỗi “thay thế”.

Đối số thứ ba của hàm này chứa chuỗi chính.

Hàm này trả về chuỗi được thay thế nếu có bất kỳ từ nào phù hợp tồn tại trong chuỗi chính dựa trên đối số đầu tiên.

Tạo một tệp Python có đoạn script sau để tìm kiếm hai chữ số ở cuối chuỗi. Nếu chuỗi chứa hai chữ số ở cuối thì các chữ số đó sẽ được thay thế bằng chuỗi “$50”.

#Nhập lại mô-đun
nhập lại

#Xác định chuỗi chính
strValue = 'Giá sách là 70'

#Xác định mẫu tìm kiếm
mẫu = '[0-9]{2}'

#Xác định giá trị thay thế
thay thếValue = '$50'

#Tìm kiếm và thay thế chuỗi dựa trên mẫu
đã sửa đổi_strValue = re.sub ( mẫu, giá trị thay thế, strValue )
#In các giá trị chuỗi gốc và chuỗi đã sửa đổi
in ( 'Chuỗi gốc:' + giá trị strValue )
in ( 'Chuỗi đã sửa đổi:' + đã sửa đổi_strValue )

Đầu ra:

Có 70 ở cuối chuỗi chính. Vì vậy, số 70 được thay thế bằng $50 trong chuỗi được thay thế.

Ví dụ 5: Thay thế chuỗi bằng hàm Subn()

Hàm subn() hoạt động giống như hàm sub(), ngoại trừ việc nó trả về kết quả dưới dạng một bộ dữ liệu trong đó chỉ mục đầu tiên chứa giá trị được thay thế và chỉ mục thứ hai chứa tổng số kết quả khớp.

Tạo một tệp Python có đoạn mã sau để tìm kiếm các bảng chữ cái từ A đến L trong chuỗi “LinuxHint.com” bằng hàm subn():

#Nhập lại mô-đun
nhập lại

#Xác định chuỗi chính
strValue = 'LinuxHint.com'

#Xác định mẫu tìm kiếm
mẫu = '[ĐẾN]'

#Xác định giá trị thay thế
thay thếValue = '*'

#Tìm kiếm và thay thế chuỗi dựa trên mẫu
đã sửa đổi_strValue = re.subn ( mẫu, giá trị thay thế, strValue )
#In chuỗi gốc và đầu ra của subn()
in ( 'Chuỗi gốc: \N ' + giá trị strValue )
in ( 'Đầu ra của hàm subn(): ' )
in ( đã sửa đổi_strValue )

Đầu ra:

Theo kết quả đầu ra sau đây, các ký tự “L” và “H” được thay thế bằng ký tự “*”.

Ví dụ 6: Tách chuỗi bằng hàm Split()

Tạo một tệp Python có tập lệnh sau sử dụng hàm Split() để chia chuỗi chính thành nhiều phần dựa trên mẫu biểu thức chính quy:

#Nhập lại mô-đun
nhập lại

#Xác định giá trị chuỗi
strVal= 'Rupa Akter;Nira Chowdhury;Mazharul Islam'
#Xác định mẫu sẽ được sử dụng để phân chia dữ liệu
mẫu = '[^A-Za-z ]'
#Lưu trữ các giá trị được chia trong danh sách
chia_kết quả = re.split ( mẫu, strVal )
in ( 'Đầu ra của hàm tách():' )
in ( chia_kết quả )

Đầu ra:

Theo đầu ra, chuỗi chính được chia thành ba phần dựa trên mẫu “[^A-Za-z ]” được sử dụng trong tập lệnh.

Phần kết luận

Mục đích của các siêu ký tự, phạm vi và hàm dựng sẵn Python được sử dụng phổ biến nhất để tìm kiếm, thay thế và phân tách chuỗi được trình bày trong hướng dẫn này bằng cách sử dụng các tập lệnh Python đơn giản.