Chuỗi phù hợp với python

RegEx hay biểu thức chính quy (Biểu thức chính quy) là một chuỗi ký tự tạo thành một biểu thức tìm kiếm (mẫu tìm kiếm). RegEx được sử dụng để kiểm tra xem một chuỗi không có mẫu tìm kiếm được chỉ định hay không

Mô-đun RegEx

Trong python, có một gói tích hợp có tên

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
6 có khả năng sử dụng để làm việc với biểu thức chính quy. To import module
In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
6

import re

RegEx trong python

Sau khi nhập mô-đun

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
6, chúng ta có thể sử dụng biểu thức chính quy. Ví dụ. Chuỗi tìm kiếm bắt đầu bằng 'Then' và kết thúc bằng 'Tây Ban Nha'

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)

Các hàm xử lý RegEx

Mô-đun

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
6 cung cấp cho chúng ta các hàm tìm kiếm một chuỗi phù hợp với biểu thức

HàmMô tảfindallTrả về một danh sách các kết quả phù hợp tìm kiếmTrả về một đối tượng
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
0 nếu có bất kỳ vị trí trị giá nào trong chuỗi phù hợpsplitTrả về một chuỗi danh sách đã được phân chia ở vị trí matchsubThay thế các vị trí khớp với biểu thức . Hàm findall()

1. Hàm findall()

Ra tất cả các giai đoạn phù hợp

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']

Hoặc nếu không tìm thấy kết quả nào phù hợp thì trả về một danh sách trống

In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]

2. Hàm tìm kiếm()

Search khoảng trắng đầu tiên trong chuỗi

In [13]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.search("\s", str) 
    ...:  
    ...: print("The first white-space character is located in position:", x.start())                               
The first white-space character is located in position: 3

Hoặc sẽ trả về Không có nếu không tìm thấy

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
0

3. tách hàm()

Tách các từ trong câu

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
1

Chúng ta chỉ có thể xác định số lần xuất hiện thông qua tham số

In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
1. Ví dụ chuỗi phân tách ở lần xuất hiện đầu tiên của khoảng trắng

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
3

4. Hàm phụ()

Thay thế mọi khoảng trắng bằng số 9

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
4

Hoặc có thể giới hạn số lần thay thế thông qua tham số

In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
2

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
6

Siêu ký tự

Siêu ký tự là những ký tự có ý nghĩa đặc biệt

Ký tự mô tảVí dụChuỗi phù hợp[]Một tập hợp các ký tự"[a-e]""adbc"\Tín hiệu có thể hiển thị một chuỗi đặc biệt (hoặc sử dụng để thoát khỏi các ký tự đặc biệt)"\d""123". Bất kỳ ký tự nào (ngoại trừ ký tự dòng mới)"he. o""henno"^Bắt đầu chuỗi"^hello""hello gua"$Kết thúc chuỗi"world$""helo world"*Không hoặc nhiều lần xuất hiện"aix*""ai"+Xuất hiện ít nhất một lần . or"a. b""a"()Nhóm character"(hello)""hello"

trình tự đặc biệt

Chuỗi đặc biệt là chuỗi đặc biệt và được bắt đầu bằng ký tự

In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
3, nó có ý nghĩa đặc biệt và thường giúp cho công việc mô tả biểu thức chính quy được gọn gàng hơn

Ký tựMô tảVí dụChuỗi phù hợp với\ABắt đầu chuỗi bằng ký tự chỉ định"\AThe""The world"\bBắt đầu hoặc kết thúc của một từ bằng ký tự chỉ địnhr"\bSpa"
r"ain\b""The rain in Spain"
"He is Bi Rain"\BKhớp với các ký tự chỉ định nhưng không nằm ở đầu hoặc cuối từr"\BSpa"
r"ain\B""This is GSpan company"
"No words are rains"\dChuỗi chứa ký tự là chữ số"\d""he1lo"\DChuỗi không chứa ký tự là số"\D""Hello"\sChuỗi chứa khoảng trắng"\s""Hello world"\SChuỗi không chứa khoảng trắng"\S""HelloWorld"\wChuỗi chứa bất kỳ ký tự nào trong nhóm từ a tới Z, từ 0 tới 9 và dấu _ (underscore)"\w""This is global_variable"\WNgược lại với
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
4"\W""*& ^ !"\ZKết thúc chuỗi bằng các ký tự được chỉ định"Spain\Z""The Spain"

bộ

Sets is a composit các ký tự bên trong dấu

In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
5 với ý nghĩa đặc biệt

SetMô tả[arg]Chuỗi chứa một trong các ký tự
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
6,
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
7 hoặc
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
8[a-n]Chuỗi chứa một trong các ký tự nằm giữa
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
6 và
In [13]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.search("\s", str) 
    ...:  
    ...: print("The first white-space character is located in position:", x.start())                               
The first white-space character is located in position: 3
0 trong bảng chữ cái
In [13]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.search("\s", str) 
    ...:  
    ...: print("The first white-space character is located in position:", x.start())                               
The first white-space character is located in position: 3
1[^arg]Chuỗi không chứa bất kỳ ký tự nào
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
6, . Biểu thức bên là chuỗi chứa các ký tự
In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
01

Match Object

Đối sánh là đối tượng chứa thông tin về tìm kiếm phù hợp và kết quả của chúng. Nếu không có tìm kiếm phù hợp nào thì sẽ trả về

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
02 chứ không phải là đối tượng
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
0 Các thuộc tính và phương thức của
In [12]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("Portugal", str) 
    ...: print(x)                                                                                                  
[]
0

chuỗi trả về chuỗi được truyền vào hàm. span() trả về một tuple chứa điểm bắt đầu và điểm kết thúc của vị trí phù hợp. group() return chuỗi phù hợp

In the first position of started and end of the first time output of the start by the

In [11]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.findall("ai", str) 
    ...: print(x)                                                                                                  
['ai', 'ai']
05

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
0

In ra string has been transfer to function

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
1

In ra đoạn phù hợp với biểu thức trong chuỗi cho trước

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
2

Tổng kết

RegEx thật sự rất mạnh mẽ và nó sẽ giúp các bạn xử lý được rất nhiều bài toán khó, phức tạp nếu áp dụng cách thông thường. Nhưng nó cũng thực sự khá khó khăn với nhưng người chưa tìm hiểu kỹ về nó. Hy vọng các bạn sẽ tìm thấy niềm vui khi sử dụng RegEx