Hướng dẫn python regex match 8 digits - python regex khớp với 8 chữ số

Tôi đang cố gắng sử dụng regex để xác minh đầu vào. Nó nên chấp nhận 8 và chỉ 8 chữ số [không có chữ cái, v.v.]. Ví dụ:

88884444, 55551234

Tôi đã thử điều này nhưng dường như nó chấp nhận nếu tôi đặt hơn 8 chữ số [nếu tôi thêm các chữ cái sau đó nó cũng chấp nhận] Cảm ơn

r'^[0-9]{8,8}'

SCB

5.6111 Huy hiệu vàng34 Huy hiệu bạc41 Huy hiệu đồng1 gold badge34 silver badges41 bronze badges

Đã hỏi ngày 26 tháng 12 năm 2017 lúc 3:54Dec 26, 2017 at 3:54

9

Vấn đề với Regex Wiz hiện tại của bạn

r'^[0-9]{8,8}'
3:

  1. r'^[0-9]{8,8}'
    
    4 Độ dài tối thiểu và tối đa bạn muốn là 8 để bạn có thể làm cho nó chính xác 8 như
    r'^[0-9]{8,8}'
    
    5, không cần phải có phạm vi
  2. Regex hiện tại có điều kiện để kiểm tra chuỗi bắt đầu nhưng bạn chưa xác định được kết thúc chuỗi có thể được xác định bằng ký hiệu
    r'^[0-9]{8,8}'
    
    6 cho phép các số được phân tách bằng dấu phẩy để tránh bạn có thể chỉ cần thêm
    r'^[0-9]{8,8}'
    
    6 ở cuối trong Regex hiện tại của bạn như
    r'^[0-9]{8,8}'
    
    8 và nó sẽ khắc phục sự cố. Tuy nhiên, bạn vẫn có thể tối ưu hóa Regex bằng cách sử dụng
    r'^[0-9]{8,8}'
    
    9 thay vì cung cấp phạm vi từ
    import re
    
    in_str = "48848484"
    
    if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
    else: print["wrong phone number"]
    
    0 vì bạn đang sử dụng tất cả các số để Regex có thể được đơn giản hóa hơn nữa thành
    import re
    
    in_str = "48848484"
    
    if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
    else: print["wrong phone number"]
    
    1, cũng cung cấp mã mẫu bên dưới.

code:

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]

Đã trả lời ngày 26 tháng 12 năm 2017 lúc 4:02Dec 26, 2017 at 4:02

Mahesh Kariamahesh KariaMahesh Karia

2.0351 Huy hiệu vàng11 Huy hiệu bạc21 Huy hiệu đồng1 gold badge11 silver badges21 bronze badges

0

  1. 'R' khi bắt đầu chuỗi mẫu chỉ định chuỗi "RAW" Python đi qua các dấu gạch chéo ngược mà không thay đổi, rất tiện dụng cho các biểu thức thông thường [Java cần tính năng này một cách tồi tệ!].
  2. Nhà
  3. Blog

Python biểu hiện chính quy

. Tìm hiểu khoa học dữ liệu bằng cách hoàn thành các thách thức mã hóa tương tác và xem video của các giảng viên chuyên gia. Bắt đầu bây giờ!

Cập nhật vào 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 đã hỗ trợ tích hợp cho chức năng thường xuyên. Để sử dụng biểu thức chính quy, bạn cần nhập ____ 22 & nbsp; mô -đun.

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

phương pháp nghiên cứu #

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
3 được sử dụng để tìm kết hợp đầu tiên cho mẫu trong chuỗi.
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
4

Cú pháp:

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
4

Phương thức ____ 23 & nbsp; chấp nhận mẫu và chuỗi và trả về một đối tượng

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
6 & nbsp; khi thành công hoặc
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
7 nếu không tìm thấy khớp nào. Đối tượng
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
6 có phương thức
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
9 chứa văn bản phù hợp trong chuỗi.

Bạn phải chỉ định mẫu bằng cách sử dụng chuỗi RAW, tức là Chuỗi sản xuất với

>>> import re
>>> s = "my number is 123"
>>> match = re.search[r'\d\d\d', s]
>>> match

>>> match.group[]
'123'
0 như thế này.

>>> import re
>>> s = "my number is 123"
>>> match = re.search[r'\d\d\d', s]
>>> match

>>> match.group[]
'123'

Ở trên, chúng tôi đã sử dụng ________ 34 & nbsp; As & nbsp; mẫu. ________ 19 & nbsp; trong biểu thức chính quy khớp với một chữ số, vì vậy

________ 34 & nbsp; sẽ khớp các chữ số như

>>> import re
>>> s = "my number is 123"
>>> match = re.search[r'\d\d\d', s]
>>> match

>>> match.group[]
'123'
7,
>>> import re
>>> s = "my number is 123"
>>> match = re.search[r'\d\d\d', s]
>>> match

>>> match.group[]
'123'
8, ________ 39. & nbsp; nó sẽ không khớp với
import re
s = "tim email is "
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,
import re
s = "tim email is "
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.

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

Biểu tượngSự mô tả
import re
s = "tim email is "
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
Dot phù hợp với bất kỳ ký tự nào ngoại trừ dòng mới
import re
s = "tim email is "
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"]
3
khớp với bất kỳ ký tự từ nào, i.e chữ cái, chữ và số, chữ số và dấu gạch dưới [
import re
s = "tim email is "
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]
import re
s = "tim email is "
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
khớp với các ký tự không từ
r'^[0-9]{8,8}'
9
khớp với một chữ số
import re
s = "tim email is "
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
khớp với một ký tự duy nhất không phải là một chữ số
import re
s = "tim email is "
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
khớp với bất kỳ ký tự không gian trắng nào như
>>> import re
>>> s = "my number is 123"
>>> match = re.search[r'\d\d\d', s]
>>> match

>>> match.group[]
'123'
1,
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
0, không gian
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
1
phù hợp với ký tự không gian không màu trắng
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
2
khớp với ký tự đơn trong bộ I.E khớp với
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
3,
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
4 hoặc
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
5
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
6
Kết hợp một ký tự khác ngoài
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
3,
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
4 và
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
5
import re
s = "tim email is "
match = re.search['[[\w.-]+]@[[\w.-]+]', s]
if match:
    print[match.group[]] ##  [the whole match]
    print[match.group[1]] ## tim [the username, group 1]
    print[match.group[2]] ## somehost [the host, group 2]
0
Kết hợp một ký tự duy nhất trong phạm vi
match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]
3 với
import re
s = "tim email is "
match = re.search['[[\w.-]+]@[[\w.-]+]', s]
if match:
    print[match.group[]] ##  [the whole match]
    print[match.group[1]] ## tim [the username, group 1]
    print[match.group[2]] ## somehost [the host, group 2]
2.
import re
s = "tim email is "
match = re.search['[[\w.-]+]@[[\w.-]+]', s]
if match:
    print[match.group[]] ##  [the whole match]
    print[match.group[1]] ## tim [the username, group 1]
    print[match.group[2]] ## somehost [the host, group 2]
3
khớp một ký tự duy nhất trong phạm vi A-Z hoặc A-Z
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
0
Kết hợp một ký tự duy nhất trong phạm vi ____ ____ 65 -____ ____ 66
import re
s = "tim email is "
match = re.search['[[\w.-]+]@[[\w.-]+]', s]
if match:
    print[match.group[]] ##  [the whole match]
    print[match.group[1]] ## tim [the username, group 1]
    print[match.group[2]] ## somehost [the host, group 2]
7
khớp bắt đầu khi bắt đầu chuỗi
r'^[0-9]{8,8}'
6
khớp bắt đầu ở cuối chuỗi
import re
s = "tim email is "
match = re.search['[[\w.-]+]@[[\w.-]+]', s]
if match:
    print[match.group[]] ##  [the whole match]
    print[match.group[1]] ## tim [the username, group 1]
    print[match.group[2]] ## somehost [the host, group 2]
9
khớp với một hoặc nhiều nhân vật trước [trận đấu tham lam].
import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'\d{5}', s]

if match:
    print[match]
0
khớp với số không hoặc nhiều hơn của ký tự trước [trận đấu tham lam].

Hãy lấy thêm một ví dụ nữa:

import re
s = "tim email is "
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"]

Ở đây chúng tôi đã sử dụng mẫu ____ 71 & nbsp; để phù hợp với địa chỉ email. Khi thành công,

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
3 trả về một đối tượng
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
6 & nbsp ;, và phương thức
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
9 của nó sẽ chứa văn bản phù hợp.

Tập đoàn chụp #

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

import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'\d{5}', s]

if match:
    print[match]
5. Giả sử chúng tôi muốn trích xuất tên người dùng và tên máy chủ từ địa chỉ email trong ví dụ trên. Để làm điều này, chúng ta cần thêm
import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'\d{5}', s]

if match:
    print[match]
5 xung quanh tên người dùng và tên máy chủ như thế này.

match = re.search[r'[[\w.-]+]@[[\w.-]+]', s]

Lưu ý rằng dấu ngoặc đơn sẽ không thay đổi những gì mẫu sẽ phù hợp. Nếu trận đấu thành công thì

import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'\d{5}', s]

if match:
    print[match]
7 sẽ chứa trận đấu từ dấu ngoặc đơn đầu tiên và
import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'\d{5}', s]

if match:
    print[match]
8 sẽ chứa trận đấu từ dấu ngoặc đơn thứ hai.

import re
s = "tim email is "
match = re.search['[[\w.-]+]@[[\w.-]+]', s]
if match:
    print[match.group[]] ##  [the whole match]
    print[match.group[1]] ## tim [the username, group 1]
    print[match.group[2]] ## somehost [the host, group 2]

hàm findall [] #

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

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
3 chỉ tìm thấy trận đấu đầu tiên cho mẫu, điều gì sẽ xảy ra nếu chúng ta muốn tìm tất cả các trận đấu trong chuỗi, đây là nơi
['12345', '41521', '78963', '85214']
0 đi vào vở kịch.

Cú pháp:

['12345', '41521', '78963', '85214']
1
['12345', '41521', '78963', '85214']
1

Khi thành công, nó trả về tất cả các trận đấu như một danh sách các chuỗi, nếu không thì một danh sách trống.

import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'\d{5}', s]

if match:
    print[match]

Đầu ra dự kiến:

['12345', '41521', '78963', '85214']

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

['12345', '41521', '78963', '85214']
0, khi việc bắt nhóm được áp dụng sau đó
['12345', '41521', '78963', '85214']
0 trả về danh sách các bộ dữ liệu trong đó các bộ dữ liệu sẽ chứa các nhóm phù hợp. Một ví dụ sẽ xóa mọi thứ.

import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'[\d{5}]-[\d{5}]', s]
print[match]

for i in match:
    print[]
    print[i]
    print["First group", i[0]]
    print["Second group", i[1]]

Đầu ra dự kiến:

r'^[0-9]{8,8}'
0

Bạn cũng có thể sử dụng việc chụp nhóm với
['12345', '41521', '78963', '85214']
0, khi việc bắt nhóm được áp dụng sau đó
['12345', '41521', '78963', '85214']
0 trả về danh sách các bộ dữ liệu trong đó các bộ dữ liệu sẽ chứa các nhóm phù hợp. Một ví dụ sẽ xóa mọi thứ.

Cờ tùy chọn #

Cả
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
3 và
['12345', '41521', '78963', '85214']
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 của khớp mẫu.Sự mô tả
Cờ
['12345', '41521', '78963', '85214']
6
Bỏ qua chữ hoa và chữ thường
['12345', '41521', '78963', '85214']
7
Cho phép [
import re
s = "tim email is "
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] phù hợp với Newline, hãy mặc định [
import re
s = "tim email is "
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] khớp với bất kỳ ký tự nào ngoại trừ dòng mới
import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'[\d{5}]-[\d{5}]', s]
print[match]

for i in match:
    print[]
    print[i]
    print["First group", i[0]]
    print["Second group", i[1]]
0

Điều này sẽ cho phép
import re
s = "tim email is "
match = re.search['[[\w.-]+]@[[\w.-]+]', s]
if match:
    print[match.group[]] ##  [the whole match]
    print[match.group[1]] ## tim [the username, group 1]
    print[match.group[2]] ## somehost [the host, group 2]
7 và
r'^[0-9]{8,8}'
6 để khớp và kết thúc mỗi dòng

Sử dụng re.match [] #

r'^[0-9]{8,8}'
1

import re
s = "Tim's phone numbers are 12345-41521 and 78963-85214"
match = re.findall[r'[\d{5}]-[\d{5}]', s]
print[match]

for i in match:
    print[]
    print[i]
    print["First group", i[0]]
    print["Second group", i[1]]
3 rất giống với sự khác biệt
import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
3 là nó sẽ bắt đầu tìm kiếm các trận đấu ở đầu chuỗi.

r'^[0-9]{8,8}'
2

Bạn có thể hoàn thành điều tương tự bằng cách áp dụng ____ ____ 67 & nbsp; cho một mẫu & nbsp; với

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
3.

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

import re

in_str = "48848484"

if re.match[pattern="^\d{8}$", string=in_str]: print["number is correct"]
else: print["wrong phone number"]
2 trong Python.

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

Regex nào phù hợp với một hoặc nhiều chữ số Python?

Bạn có thể sử dụng \ dmf \ d+, hoặc, nếu bạn muốn chỉ khớp với 1 hoặc 2 chữ số ở cuối, ra \ dmf \ d {1,2}.\dmf\d+ , or, if you want to match only 1 or 2 digits at the end, out\dmf\d{1,2} .

Regex ở Python là gì?

Một biểu thức regex, hoặc biểu thức chính quy, là một chuỗi các ký tự tạo thành một mẫu tìm kiếm.Regex có thể được sử dụng để kiểm tra xem một chuỗi có chứa mẫu tìm kiếm được chỉ định không.a sequence of characters that forms a search pattern. RegEx can be used to check if a string contains the specified search pattern.

R trong regex python là gì?

'R' khi bắt đầu chuỗi mẫu chỉ định chuỗi "RAW" Python đi qua các dấu gạch chéo ngược mà không thay đổi, rất tiện dụng cho các biểu thức thông thường [Java cần tính năng này một cách tồi tệ!].designates a python "raw" string which passes through backslashes without change which is very handy for regular expressions [Java needs this feature badly!].

Chủ Đề