Python regex 4 chữ số

[Nhà tài trợ] Bắt đầu học Python với hướng dẫn Giới thiệu về Python miễn phí của DataCamp. Tìm hiểu Khoa học dữ liệu bằng cách hoàn thành các thử thách mã hóa tương tác và xem video của các chuyên gia hướng dẫn. Bắt đầu bây giờ

Cập nhật ngày 07 tháng 1 năm 2020

Biểu thức chính quy được sử dụng rộng rãi để khớp mẫu. Python có hỗ trợ tích hợp cho chức năng thông thường. Để sử dụng cụm từ thông dụng, bạn cần nhập mô-đun

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
2

Bây giờ bạn đã sẵn sàng để sử dụng biểu thức chính quy

lại. Phương thức tìm kiếm []

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
3 được sử dụng để tìm kết quả khớp đầu tiên cho mẫu trong chuỗi

cú pháp.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
4

Phương thức

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
3 chấp nhận mẫu và chuỗi và trả về một đối tượng
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
6 khi thành công hoặc
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
7 nếu không tìm thấy kết quả khớp. Đối tượng
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
6 có phương thức
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
9 chứa văn bản phù hợp trong chuỗi

Bạn phải chỉ định mẫu sử dụng chuỗi thô i. e chuẩn bị chuỗi với

import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
0 như thế này

Tất cả các ký tự đặc biệt và chuỗi thoát đều mất ý nghĩa đặc biệt của chúng trong chuỗi thô, vì vậy,

import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
1 không phải là ký tự xuống dòng, nó chỉ là dấu gạch chéo ngược
import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
2 theo sau bởi một dấu gạch chéo 83

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
2

Ở trên, chúng tôi đã sử dụng

import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
4 làm mẫu.
import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
5 trong biểu thức chính quy khớp với một chữ số, vì vậy

import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
4 sẽ khớp với các chữ số như
import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
7,
import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
8,
import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
9. Nó sẽ không khớp với
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
90,
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
91

Các mẫu cơ bản được sử dụng trong biểu thức chính quy

Biểu tượng Mô tả

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
92dấu chấm khớp với bất kỳ ký tự nào ngoại trừ dòng mới
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
93khớp với bất kỳ ký tự từ i. e chữ cái, chữ và số, chữ số và dấu gạch dưới [
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
94]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
95khớp với các ký tự không phải là từ
import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
5khớp với một chữ số duy nhất
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
97khớp với một ký tự không phải là chữ số
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
98khớp với bất kỳ ký tự khoảng trắng nào như
import re
s = "tim email is tim@somehost.com"
match = re.search[r'[\w.-]+@[\w.-]+', s]

# the above regular expression will match a email address

if match:
    print[match.group[]]
else:
    print["match not found"]
1,
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
90, dấu cách
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
91khớp với một ký tự không phải khoảng trắng
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
92khớp với một ký tự đơn trong bộ i. e khớp với
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
93,
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
94 hoặc
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
95
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
96khớp với một ký tự đơn lẻ khác với
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
93,
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
94 và
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
95
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
90khớp với một ký tự đơn lẻ trong phạm vi
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
93 đến
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
92.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
93khớp một ký tự đơn trong phạm vi a-z hoặc A-Z
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
94khớp một ký tự đơn trong phạm vi
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
95-
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
96
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
97khớp bắt đầu ở đầu chuỗi
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
98khớp bắt đầu ở cuối chuỗi
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
99khớp một hoặc nhiều ký tự trước đó [khớp tham lam].
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
90khớp với 0 hoặc nhiều ký tự phía trước [khớp tham lam]

Hãy lấy thêm một ví dụ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10

________số 8

Ở đây, chúng tôi đã sử dụng mẫu

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
91 để khớp với địa chỉ email. Khi thành công,
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
3 trả về một đối tượng
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
6 và phương thức
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
9 của nó sẽ chứa văn bản phù hợp

Chụp nhóm

Chụp nhóm cho phép trích xuất các phần từ chuỗi phù hợp. Bạn có thể tạo nhóm bằng cách sử dụng dấu ngoặc đơn

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
95. Giả sử chúng tôi muốn trích xuất tên người dùng và tên máy chủ lưu trữ từ địa chỉ email trong ví dụ trên. Để làm điều này, chúng ta cần thêm
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
95 xung quanh tên người dùng và tên máy chủ lưu trữ như thế này

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
9

Lưu ý rằng dấu ngoặc đơn sẽ không thay đổi mẫu sẽ khớp. Nếu so khớp thành công thì

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
97 sẽ chứa kết quả khớp từ dấu ngoặc đơn đầu tiên và
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
98 sẽ chứa kết quả khớp từ dấu ngoặc đơn thứ hai

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
9

hàm findall[]

Như bạn đã biết bây giờ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
3 chỉ tìm thấy kết quả khớp đầu tiên cho mẫu, nếu chúng ta muốn tìm tất cả các kết quả khớp trong chuỗi thì sao, đây là lúc
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
0 phát huy tác dụng

cú pháp.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
1

Khi thành công, nó trả về tất cả các kết quả khớp dưới dạng một danh sách các chuỗi, nếu không thì một danh sách trống

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
9

Sản lượng dự kiến

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
9

Bạn cũng có thể sử dụng tính năng chụp nhóm với

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
0, khi tính năng chụp nhóm được áp dụng thì
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
0 sẽ trả về danh sách các bộ trong đó các bộ sẽ chứa các nhóm phù hợp. Một ví dụ sẽ xóa mọi thứ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
0

Sản lượng dự kiến

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
1

Cờ tùy chọn

Cả

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
3 và
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
5 đều chấp nhận và tham số tùy chọn được gọi là cờ. cờ được sử dụng để sửa đổi hành vi khớp mẫu

FlagsDescription

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
6Bỏ qua chữ hoa và chữ thường
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
7Cho phép [
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
92] khớp với dòng mới, mặc định [
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
92] khớp với bất kỳ ký tự nào ngoại trừ dòng mới
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
00Điều này sẽ cho phép
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
97 và
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
98 khớp với đầu và cuối mỗi dòng

Sử dụng lại. trận đấu[]

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
03 rất giống với sự khác biệt của
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
3 là nó sẽ bắt đầu tìm kiếm các kết quả khớp ở đầu chuỗi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
0

Bạn có thể thực hiện điều tương tự bằng cách áp dụng

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
97 cho một mẫu với
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
1

Điều này hoàn thành mọi thứ bạn cần biết về mô-đun

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
2 trong python

Hướng dẫn khác [Nhà tài trợ]

Trang web này được hỗ trợ rộng rãi bởi DataCamp. DataCamp cung cấp Hướng dẫn Python tương tác trực tuyến cho Khoa học dữ liệu. Tham gia cùng hơn một triệu người học khác và bắt đầu học Python cho khoa học dữ liệu ngay hôm nay

Làm cách nào để kiểm tra số có 4 chữ số trong RegEx?

Thêm $ anchor. /^SW\d{4}$/ . Đó là do \w+ trong đó \w+ khớp với một hoặc nhiều ký tự chữ và số. \w+ cũng khớp với các chữ số.

Ý nghĩa của \1 trong RegEx bằng Python là gì?

\1 tương đương với re. Tìm kiếm[. ]. group[1] , biểu thức được phân tách bằng dấu ngoặc đơn đầu tiên bên trong biểu thức chính quy . Đó cũng là một sự thật thú vị, một phần lý do khiến các biểu thức chính quy chậm hơn đáng kể trong Python và các ngôn ngữ lập trình khác so với yêu cầu của lý thuyết CS.

Chủ Đề