Hướng dẫn username validation in python using regex - xác thực tên người dùng trong python bằng regex

Tôi đã nhìn và tìm kiếm và không thể tìm thấy những gì tôi cần mặc dù tôi nghĩ nó sẽ đơn giản (nếu bạn có bất kỳ trải nghiệm Python nào, điều mà tôi không có).

Cho một chuỗi, tôi muốn xác minh, bằng Python, nó chỉ chứa các ký tự chữ và số: a-zA-Z0-9. _ -

examples:

Accepted:

if re.match("^[a-zA-Z0-9_.-]+$", username):
0

if re.match("^[a-zA-Z0-9_.-]+$", username):
1

if re.match("^[a-zA-Z0-9_.-]+$", username):
2

Phế phẩm:

if re.match("^[a-zA-Z0-9_.-]+$", username):
3 - Không được phép không gian

if re.match("^[a-zA-Z0-9_.-]+$", username):
4 - @ không phải là chữ và số

Tôi đang cố gắng sử dụng:

if re.match("^[a-zA-Z0-9_.-]+$", username):
5

Nhưng điều đó dường như không làm công việc ...

Đã hỏi ngày 25 tháng 3 năm 2010 lúc 21:51Mar 25, 2010 at 21:51

Hướng dẫn username validation in python using regex - xác thực tên người dùng trong python bằng regex

3

if re.match("^[a-zA-Z0-9_.-]+$", username):
6 không trả lại Boolean; Nó trả về một
if re.match("^[a-zA-Z0-9_.-]+$", username):
7 trên một trận đấu, hoặc
if re.match("^[a-zA-Z0-9_.-]+$", username):
8 trên không phù hợp.

>>> re.match("^[a-zA-Z0-9_.-]+$", "hello")
<_sre.SRE_Match object at 0xb7600250>
>>> re.match("^[a-zA-Z0-9_.-]+$", "    ")
>>> print re.match("^[a-zA-Z0-9_.-]+$", "    ")
None

Vì vậy, bạn không nên làm

if re.match("^[a-zA-Z0-9_.-]+$", username):
9; Thay vào đó, bạn nên kiểm tra
if re.match(r'^[\w.-]+$', username):
0 trong trường hợp này, có thể được rút ngắn thêm thành
if re.match(r'^[\w.-]+$', username):
1.

Đã trả lời ngày 25 tháng 3 năm 2010 lúc 21:56Mar 25, 2010 at 21:56

Hướng dẫn username validation in python using regex - xác thực tên người dùng trong python bằng regex

Mark Rushakoffmark RushakoffMark Rushakoff

243K44 Huy hiệu vàng403 Huy hiệu bạc396 Huy hiệu Đồng44 gold badges403 silver badges396 bronze badges

Không bao giờ sử dụng

if re.match(r'^[\w.-]+$', username):
2 hoặc
if re.match(r'^[\w.-]+$', username):
3 trong một so sánh. Nhiều loại đã có một bool tương đương mà bạn nên sử dụng thay thế:

if re.match("^[a-zA-Z0-9_.-]+$", username):

Đã trả lời ngày 25 tháng 3 năm 2010 lúc 21:57Mar 25, 2010 at 21:57

Cũng có thể rút ngắn nó một chút để:

if re.match(r'^[\w.-]+$', username):

Đã trả lời ngày 26 tháng 3 năm 2010 lúc 7:28Mar 26, 2010 at 7:28

Tôi sẽ xem xét điều này cho một tên người dùng hợp lệ: 1) Tên người dùng phải dài 6-30 ký tự2) Tên người dùng chỉ có thể chứa:
1) Username must be 6-30 characters long
2) Username may only contain:

  • Chữ hoa và chữ thường
  • Số từ 0-9 và
  • Ký tự đặc biệt _ -.

3) Tên người dùng có thể không:

  • Bắt đầu hoặc kết thúc với các ký tự _ -.

  • Có nhiều hơn một ký tự tuần tự _ -. nội bộ

Đây sẽ là ví dụ về việc sử dụng:

if re.match(r'^[\w.-]+$', username):
4
if re.match(r'^[\w.-]+$', username):
4

Đã trả lời ngày 2 tháng 7 năm 2017 lúc 18:36Jul 2, 2017 at 18:36

Hướng dẫn username validation in python using regex - xác thực tên người dùng trong python bằng regex

sp_omersp_omersp_omer

2813 Huy hiệu bạc12 Huy hiệu Đồng3 silver badges12 bronze badges

Nếu bạn định sử dụng nhiều biểu thức thông thường, bạn có thể biên dịch nó cho tốc độ (hoặc khả năng đọc)

import re 
ALPHANUM=re.compile('^[a-zA-Z0-9_.-]+$')

for u in users:
    if ALPHANUM.match(u) is None:
        print "invalid"

Từ các tài liệu:

Các phiên bản được biên dịch của các mẫu gần đây nhất được chuyển đến

if re.match(r'^[\w.-]+$', username):
5,
if re.match(r'^[\w.-]+$', username):
6 hoặc
if re.match(r'^[\w.-]+$', username):
7 được lưu trong bộ nhớ cache, vì vậy các chương trình chỉ sử dụng một vài biểu thức thông thường tại một thời điểm cần phải lo lắng về việc biên dịch các biểu thức chính quy.

Đã trả lời ngày 26 tháng 3 năm 2010 lúc 7:37Mar 26, 2010 at 7:37

FabriziomfabriziomfabrizioM

45.1K15 Huy hiệu vàng98 Huy hiệu bạc116 Huy hiệu đồng15 gold badges98 silver badges116 bronze badges

Tôi thực hiện xác nhận của tôi theo cách này trong lớp học của tôi:

def valid_re(self, s, r):
 reg = re.compile(r)
 return reg.match(s)

Sau đó, tôi gọi cho trường hợp sử dụng và kiểm tra theo cách này:

if not utils.valid_re(username, r'^[a-zA-Z0-9_.-]+$'):
        error = "Invalid username!"

Đã trả lời ngày 28 tháng 2 năm 2013 lúc 1:39Feb 28, 2013 at 1:39

Daniel Watsondaniel WatsonDaniel Watson

4231 Huy hiệu vàng3 Huy hiệu bạc9 Huy hiệu đồng1 gold badge3 silver badges9 bronze badges

Làm cách nào để xác nhận một regex?

Để xác thực một trường có mẫu regex, nhấp vào hộp kiểm Might Mẫu phải khớp.Bạn có thể tiết kiệm thời gian cho người dùng của mình bằng cách bao gồm các hướng dẫn định dạng hoặc ví dụ trong mô tả câu hỏi.click the Must match pattern check box. Next, add the expression you want to validate against. Then add the message your users will see if the validation fails. You can save time for your users by including formatting instructions or examples in the question description.

Làm cách nào để kiểm tra xem một chuỗi có hợp lệ trong Regex Python không?

fullmatch ().Phương pháp này kiểm tra xem toàn bộ chuỗi có khớp với mẫu biểu thức chính quy hay không.Nếu nó làm thì nó sẽ trả về 1, nếu không thì 0.. This method checks if the whole string matches the regular expression pattern or not. If it does then it returns 1, otherwise a 0.

Xác thực tên người dùng là gì?

Kiểm tra xem tên người dùng có hợp lệ không..

Làm thế nào để bạn kiểm tra các biểu thức thường xuyên trong Python?

Mặc dù có một số bước để sử dụng các biểu thức thông thường trong Python, nhưng mỗi bước khá đơn giản ...
Nhập mô -đun Regex với Nhập RE ..
Tạo một đối tượng Regex với Re.....
Truyền chuỗi bạn muốn tìm kiếm vào phương thức tìm kiếm của Regex () ..