Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Regex với các ký tự neo trong Python
Trong lập trình Python, biểu thức chính quy là một công cụ mạnh mẽ để xử lý và phân tích chuỗi ký tự. Một trong những khía cạnh quan trọng của biểu thức chính quy là khả năng khớp các vị trí cụ thể trong chuỗi, chẳng hạn như đầu và cuối của chuỗi. Các ký tự neo được sử dụng để định vị các vị trí này, giúp bạn có thể dễ dàng xác định và kiểm tra các mẫu chuỗi theo yêu cầu. Trong bài viết này, bạn sẽ học cách sử dụng các ký tự neo trong biểu thức chính quy để khớp các vị trí ký tự, bao gồm đầu và cuối của một chuỗi, giúp việc làm việc với chuỗi trở nên chính xác và hiệu quả hơn.
Giới thiệu về các ký tự neo trong biểu thức chính quy
Biểu thức chính quy cung cấp cho bạn hai ký tự neo để khớp các vị trí ký tự:
- ^ – ký tự dấu mũ (caret) khớp tại đầu của một chuỗi.
- $ – ký tự dấu đô la (dollar) khớp tại cuối của một chuỗi.
Ví dụ sau đây sử dụng \d\d
để khớp hai chữ số trong một chuỗi thời gian:
import re time = '12:20' matches = re.finditer('\d\d', time) for match in matches: print(match.group())
Kết quả trả về hai chuỗi khớp:
Bài viết này được đăng tại [free tuts .net]
12 20
Nếu bạn sử dụng ký tự dấu mũ (^), bạn sẽ chỉ nhận được nhóm đầu tiên là hai chữ số ở đầu chuỗi. Ví dụ:
import re time = '12:20' matches = re.finditer('^\d\d', time) for match in matches: print(match.group())
Kết quả:
12
Tương tự, nếu bạn sử dụng ký tự dấu đô la ($), bạn sẽ nhận được hai chữ số cuối cùng vì ký tự $
khớp \d\d
ở cuối chuỗi thời gian:
import re time = '12:20' matches = re.finditer('\d\d$', time) for match in matches: print(match.group())
Kết quả:
20
Để kiểm tra xem một chuỗi có phải là chuỗi thời gian hay không, bạn có thể kết hợp cả dấu mũ (^) và dấu đô la ($). Ví dụ:
import re time = '12:20' matches = re.finditer('^\d\d:\d\d$', time) for match in matches: print(match.group())
Kết quả:
12:20
Lưu ý rằng mẫu ^\d\d:\d\d$
không kiểm tra giờ và phút hợp lệ. Ví dụ, nó cũng khớp với chuỗi sau:
30:99
Đây không phải là một chuỗi thời gian hợp lệ vì giờ hợp lệ từ 1 đến 24 và phút hợp lệ từ 00 đến 59. Sau này, bạn sẽ học cách khớp chuỗi thời gian với các giá trị hợp lệ bằng cách sử dụng phép thay thế.
Kết bài
Các ký tự neo trong biểu thức chính quy khớp các vị trí ký tự, không phải ký tự. Ký tự dấu mũ (^) khớp tại đầu của một chuỗi, trong khi ký tự dấu đô la ($) khớp tại cuối của một chuỗi. Biểu thức chính quy với các ký tự neo giúp bạn xác định vị trí chính xác của các mẫu chuỗi, từ đó kiểm tra và xử lý dữ liệu một cách chính xác và hiệu quả. Sử dụng các ký tự neo này, bạn có thể viết mã linh hoạt hơn và dễ dàng kiểm tra các điều kiện phức tạp trong chuỗi ký tự, đảm bảo rằng dữ liệu được xử lý đúng cách và phù hợp với các yêu cầu của ứng dụng.