Hướng dẫn python regex for alphabets - python regex cho bảng chữ cái

Just remove the pattern which matches all the uppercase alphabets from the character class and put it in between two

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
5 patterns.

re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", st]

Example:

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 

RegEx hay biểu thức chính quy [Regular Expression] là một chuỗi ký tự tạo thành một biểu mẫu tìm kiếm [search pattern]. RegEx được sử dụng để kiểm tra xem một chuỗi có chưa mẫu tìm kiêms được chỉ định hay không.

RegEx module

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

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
6 có khả năng sử dụng để làm việc với biểu thức chính quy. Để import module
>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
6

import re

RegEx trong python

Sau khi import module

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
6 thì chúng ta có thể sử dụng biểu thức chính quy. Ví dụ: Tìm kiễm chuỗi bắt đầu bằng 'The' và kết thúc bằng 'Spain':

import re

txt = "The rain in Spain"
x = re.search["^The.*Spain$", txt]

Các hàm xử lý RegEx

Module

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
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ả
findall Trả về một list các kết quả phù hợp
search Trả về một
import re
0 object nếu có bất kỳ vị trị nào trong chuỗi phù hợp
split Trả về một list chuỗi đã được phân chia ở vị trí match
sub Thay thế các vị trí match với biểu thức bằng một chuỗi khác

1. Hàm findall[]

In ra tất cả những đ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 rỗng

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

2. Hàm search[]

Tìm kiếm 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ề None nếu không tìm thấy

In [15]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.search["\d", str] 
    ...:  
    ...: print[x]                                                                                                  
None

3. Hàm split[]

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

In [16]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.split["\s", str] 
    ...: print[x]                                                                                                  
['The', 'rain', 'in', 'Spain']

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

import re
1. Ví dụ tách chuỗi ở lần xuất hiện đầu tiên của khoảng trắng:

In [17]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.split["\s", str, 1] 
    ...: print[x]                                                                                                  
['The', 'rain in Spain']

4. Hàm sub[]

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

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
0

Hoặc có thể hạn chế số lần thay thế qua tham số

import re
2:

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
1

Metacharacters

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

Ký tựMô tảfindall Trả về một list các kết quả phù hợp
search Trả về một
import re
0 object nếu có bất kỳ vị trị nào trong chuỗi phù hợp
split Trả về một list chuỗi đã được phân chia ở vị trí match
sub Thay thế các vị trí match với biểu thức bằng một chuỗi khác 1. Hàm findall[]In ra tất cả những đoạn phù hợp:
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 rỗng2. Hàm search[]Tìm kiếm khoảng trắng đầu tiên trong chuỗi:Hoặc sẽ trả về None nếu không tìm thấy
3. Hàm split[]Tách các từ trong câu:Chúng ta có thể chỉ định số lần xuất hiện qua tham số
import re
1. Ví dụ tách chuỗi ở lần xuất hiện đầu tiên của khoảng trắng:
In [17]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.split["\s", str, 1] 
    ...: print[x]                                                                                                  
['The', 'rain in Spain']
4. Hàm sub[]Thay thế mọi khoảng trắng bằng số 9:Hoặc có thể hạn chế số lần thay thế qua tham số
import re
2:
Metacharacters
Metacharacters là những ký tự có ý nghĩa đặc biệtKý 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 thể hiện một chuỗi đặc biệt [hoặc sử dụng để thoát 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

Ký tựMô tảfindall Trả về một list các kết quả phù hợp
search Trả về một
import re
0 object nếu có bất kỳ vị trị nào trong chuỗi phù hợp
split Trả về một list chuỗi đã được phân chia ở vị trí match
sub Thay thế các vị trí match với biểu thức bằng một chuỗi khác 1. Hàm findall[]
r"ain\b"
In ra tất cả những đoạn phù hợp:
"He is Bi Rain"
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 rỗng2. Hàm search[]Tìm kiếm khoảng trắng đầu tiên trong chuỗi:
r"ain\B"
Hoặc sẽ trả về None nếu không tìm thấy
"No words are rains"
3. Hàm split[]Tách các từ trong câu:1. Hàm findall[]In ra tất cả những đoạn phù hợp:
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 rỗng2. Hàm search[]Tìm kiếm khoảng trắng đầu tiên trong chuỗi:Hoặc sẽ trả về None nếu không tìm thấy
3. Hàm split[]Tách các từ trong câu:Chúng ta có thể chỉ định số lần xuất hiện qua tham số
import re
1. Ví dụ tách chuỗi ở lần xuất hiện đầu tiên của khoảng trắng:
In [17]: import re 
    ...:  
    ...: str = "The rain in Spain" 
    ...: x = re.split["\s", str, 1] 
    ...: print[x]                                                                                                  
['The', 'rain in Spain']
4. Hàm sub[]Thay thế mọi khoảng trắng bằng số 9:Hoặc có thể hạn chế số lần thay thế qua tham số
import re
2:
Metacharacters
Metacharacters là những ký tự có ý nghĩa đặc biệtKý 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 thể hiện một chuỗi đặc biệt [hoặc sử dụng để thoát 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" Mô tả
"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 "aix+"

"aixxxx"

{}

Chính xác số lần xuất hiện

"aix{2}"

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
2

"aixx"

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
3

|

>>> s= "S23#"
>>> s1 = "WS23%"
>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s]

>>> re.match[r"^[0-9[]%#+?=:._,!/-]*[A-Za-z][0-9[]%#+?=:._,!/-]*$", s1]
>>> 
4

Tổng kết

RegEx thật sự rất mạnh 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á rối rắm 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 được niềm vui khi sử dụng RegEx

Bài Viết Liên Quan

Chủ Đề