2
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đã thử sử dụng dòng sau để in đúng nếu tìm thấy dấu gạch nối trong chuỗi:
print [re.match['-', 'p-abcd-abcd']]
Thay vì 'đúng', 'không' được in.
Cœur
356K24 Huy hiệu vàng188 Huy hiệu bạc257 Huy hiệu đồng24 gold badges188 silver badges257 bronze badges
Hỏi ngày 31 tháng 10 năm 2015 lúc 19:35Oct 31, 2015 at 19:35
0
re.match
sẽ khớp với mẫu từ đầu chuỗi. Nếu bạn muốn tìm kiếm một mẫu trong một chuỗi, bạn cần re.search[]
:
re.search[r'-', 'p-abcd-abcd']
Nhưng nếu bạn chỉ muốn kiểm tra tư cách thành viên của một ký tự trong một chuỗi, bạn chỉ cần sử dụng toán hạng
re.search[r'-', 'p-abcd-abcd']
0:if '-' in 'p-abcd-abcd'
Đã trả lời ngày 31 tháng 10 năm 2015 lúc 19:37Oct 31, 2015 at 19:37
MazdakmazdakMazdak
102K18 Huy hiệu vàng157 Huy hiệu bạc183 Huy hiệu đồng18 gold badges157 silver badges183 bronze badges
0
Kiểm tra xem chuỗi chỉ chứa các chữ cái, số, dấu gạch nối và nhấn mạnh #
Sử dụng phương thức
1 để kiểm tra xem một chuỗi chỉ chứa các chữ cái, số, dấu gạch nối và gạch dưới, ví dụ: re.search[r'-', 'p-abcd-abcd']
2. Phương thức re.search[r'-', 'p-abcd-abcd']
1 sẽ trả về một đối tượng re.search[r'-', 'p-abcd-abcd']
4 nếu chuỗi chỉ chứa các ký tự được phép, nếu không re.search[r'-', 'p-abcd-abcd']
5 được trả về.re.search[r'-', 'p-abcd-abcd']
Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
Nếu bạn đang tìm kiếm một giải pháp không phải là regex, hãy cuộn xuống tiêu đề tiếp theo.
Phương thức Re.Match trả về một đối tượng
re.search[r'-', 'p-abcd-abcd']
4 nếu biểu thức thông thường được cung cấp được khớp trong chuỗi.Phương thức
re.search[r'-', 'p-abcd-abcd']
4 trả về re.search[r'-', 'p-abcd-abcd']
5 nếu chuỗi không khớp với mẫu regex.Đối số đầu tiên chúng tôi đã chuyển sang phương thức re.match
là một biểu thức chính quy.
Các dấu ngoặc vuông
if '-' in 'p-abcd-abcd'
0 được sử dụng để chỉ ra một tập hợp các ký tự.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] if validate['bobby-hadz-com_123']: # 👇️ this runs print['The string contains only letters, numbers, hyphens and underscores'] else: print['The string does NOT contain only letters, numbers, hyphens and underscores']
Các ký tự
1 và if '-' in 'p-abcd-abcd'
2 đại diện cho phạm vi chữ thường và chữ hoa của các chữ cái.if '-' in 'p-abcd-abcd'
Các ký tự
if '-' in 'p-abcd-abcd'
3 đại diện cho một loạt các chữ số từ 0 đến 9.Hai nhân vật cuối cùng là một dấu gạch dưới và dấu gạch nối.
Bạn có thể điều chỉnh Regex bằng cách thêm các ký tự giữa các dấu ngoặc vuông.
CARET
if '-' in 'p-abcd-abcd'
4 phù hợp với sự khởi đầu của chuỗi và dấu đô la if '-' in 'p-abcd-abcd'
5 phù hợp với phần cuối của chuỗi.Dấu hoa thị
6 phù hợp với ký tự trước [chữ cái, số, dấu gạch nối và gạch dưới] không hoặc nhiều lần hơn.if '-' in 'p-abcd-abcd'
Khi dấu hoa thị
if '-' in 'p-abcd-abcd'
6 được sử dụng, regex được khớp với các chuỗi trống.Nếu bạn không xem để có được một trận đấu cho các chuỗi trống, hãy sử dụng ký tự
if '-' in 'p-abcd-abcd'
8 thay vì dấu hoa thị.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]+$', string] # 👇️ print[validate['bobby-hadz-com_123']] print[validate['']] # 👉️ None print[validate['bobbyhadz.com']] # 👉️ None print[validate[' ']] # 👉️ None
Cộng với
8 làm cho biểu thức chính quy khớp với 1 hoặc nhiều sự lặp lại của ký tự trước đó.if '-' in 'p-abcd-abcd'
Bạn có thể sử dụng lớp
0 nếu bạn muốn trả lại Boolean từ chức năng thay vì đối tượngCopied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
re.search[r'-', 'p-abcd-abcd']
4 hoặc re.search[r'-', 'p-abcd-abcd']
5.Copied!
import re def validate[string]: return bool[re.match[r'^[a-zA-Z0-9_-]+$', string]] print[validate['bobby-hadz-com_123']] # 👉️ True print[validate['']] # 👉️ False print[validate['bobbyhadz.com']] # 👉️ False print[validate[' ']] # 👉️ False
Lớp bool [] lấy giá trị và chuyển đổi nó thành boolean [đúng hoặc sai].
Nếu bạn cần trợ giúp đọc hoặc viết một biểu thức chính quy, hãy tham khảo ý kiến phân nhóm cú pháp biểu thức thông thường trong các tài liệu chính thức.
Trang chứa một danh sách tất cả các ký tự đặc biệt với nhiều ví dụ hữu ích.
Kiểm tra xem Chuỗi chỉ chứa các chữ cái, số, dấu gạch nối và gạch dưới bằng ussubset [] #
Để kiểm tra xem một chuỗi chỉ chứa các chữ cái, số, dấu gạch nối và nhấn mạnh:
- Sử dụng mô -đun
3 để xây dựng một chuỗi các ký tự được phép.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
- Sử dụng lớp
4 để chuyển đổi chuỗi thành đối tượngCopied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
5.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
- Sử dụng phương thức
6 để kiểm tra xem chuỗi chỉ chứa các ký tự được chỉ định.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
Copied!
import string allowed_characters = string.ascii_letters + string.digits + '_-' # 👇️ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_- print[allowed_characters] if set['bobby-hadz-com_123'].issubset[allowed_characters]: # 👇️ this runs print['The string contains only letters, numbers, hyphens and underscores'] else: print['The string does NOT contain only letters, numbers, hyphens and underscores'] # 👇️ True print[set['bobby-hadz-com_123'].issubset[allowed_characters]] # 👇️ False print[set['a b ! @'].issubset[allowed_characters]]
Chúng tôi đã sử dụng mô -đun
3 để xây dựng một chuỗi chứa tất cả các chữ cái và chữ số ASCII và thêm một dấu gạch dưới và dấu gạch nối.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
Sau đó, chúng tôi đã sử dụng lớp
4 để chuyển đổi chuỗi thànhCopied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
5.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
Đặt đối tượng là một bộ sưu tập không có thứ tự của các yếu tố độc đáo.
Phương thức set.issubset kiểm tra nếu mọi yếu tố của
5 nằm trong chuỗi được cung cấp.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] # 👇️ print[validate['bobby-hadz-com_123']] # 👇️ print[validate['']] # 👇️ None print[validate['bobbyhadz.com']] # 👇️ None print[validate[' ']]
Điều kiện đánh giá thành
1 chỉ khi tất cả các ký tự của chuỗi có trong chuỗiCopied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] if validate['bobby-hadz-com_123']: # 👇️ this runs print['The string contains only letters, numbers, hyphens and underscores'] else: print['The string does NOT contain only letters, numbers, hyphens and underscores']
2.Copied!
import re def validate[string]: return re.match[r'^[a-zA-Z0-9_-]*$', string] if validate['bobby-hadz-com_123']: # 👇️ this runs print['The string contains only letters, numbers, hyphens and underscores'] else: print['The string does NOT contain only letters, numbers, hyphens and underscores']
Bạn có thể sử dụng toán tử bổ sung [+] nếu bạn cần điều chỉnh chuỗi các ký tự được phép.