pythex: cứu tinh của của lập trình viên python
Python
40
regex
12
White

studybot viết ngày 15/04/2016

alt text

Regexp rất đau đầu và nhất là khi phải viết một regex để validate chuỗi dữ liệu nhập vào. Những lúc cần kiểm tra xem chuỗi regex có đúng không tớ hay dùng pythex.

http://pythex.org/

alt text

Pythex có thể làm được những gì?

Về cơ bản pythex là một tool cho phép bạn viết chuỗi regex mẫu và đưa chuỗi kiểm tra vào để xem có nhận diện được bởi mẫu không. Tool hỗ trợ gần như các tính năng mà Python RE hỗ trợ như:

  • IGNORECASE: không quan tâm đến ký tự viết hoa hay viết thường
  • MULTILINE: nhận diện trên nhiều dòng
  • DOTALL: nhận diện tất cả các ký tự
  • VERBOSE: Cho phép comment trong regex

Bạn có thể chia sẻ Regex cho những người khác. Đây là link của regex trong bài viết

Cá nhân mình thấy tool khá trực quan và dễ dùng. Gần đây có vài pattern mình cần phải viết để validate form html và mình thường dùng pythex.

Dùng thử

Cách tốt nhất để biết tool hay đến đâu là dùng thử. Mình thử dùng với bài toán sau

1. Nhận diện chuỗi quote của ngữ pháp markdown

Trong markdown bạn có thể quote bằng ký tự ">". Ví dụ như câu sau đây sẽ được format thành quotation trong html

Câu này là một trích dẫn (quotation)

Ta muốn nhận diện chuỗi bắt đầu bằng ">" và ghi vào biến quote? Làm thế nào?

Với cao thủ regex, bài này quá đơn giản. Mấu chốt là ghi vào biến quote vì cách nhận diện theo tên của regex có cú pháp thay đổi theo library hay ngôn ngữ (Xem Ruby Regex để thấy sự khác biệt)

Mình dùng backreference theo tên của python regex với cú pháp như sau: (?P= patern)

alt text

pythex giúp mình nhận biết là chuỗi của mình có thể nhận diện được quote và trích xuất được phần quote ở "Match captures".

2. Trích dẫn phải là một câu đến cuối dòng

Rõ ràng mẫu trên không tốt vì nó chỉ cho trích dẫn một từ. Vậy mình muốn sau trích dẫn cả câu đến cuối dòng thì làm thế nào?

cách đơn giản là thêm khoảng trắng

alt text

pythex báo cho ta biết chuỗi của ta nhận được cả khoảng trắng. Biến quote nhận đến cuối câu! Rất trực quang

3. Trích dẫn nên dừng ở cuối dòng

Rõ ràng regex pattern hiện tại nhận cả chuỗi ở dòng tiếp theo, có cách nào để chuỗi nhận đến hết dòng khôn ng nhỉ?

Cách đơn giản: thêm ký tự cuối dòng ở pattern

alt text

Tóm tắt

pythex rất trực quan giúp chúng ta kiểm tra ngay được là biểu thức regex của ta có đúng hay không, có nhận diện được chuỗi nào hay không. Khi gặp vấn đề với regex và python, pythex thực sự sẽ là một vị cứu tinh.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

studybot

15 bài viết.
9 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
14 12
Một vài thủ thuật vim mới biết, ghi lại cho khỏi quên Căn lề các cột dữ liệu Để căn lề ấn phím esc (để sang command mode) :%column t Chọn th...
studybot viết 3 năm trước
14 12
White
9 9
Javascript context (ngữ cảnh?) là một khái niệm khó hiểu trong Javascript. Tuy vậy để code Javascript thành thạo thì việc nắm vững context là điểu ...
studybot viết 3 năm trước
9 9
White
8 1
Một vài ghi chép về Java Hotspot GC Garbage collector thực hiện việc quản lý bộ nhớ thông qua 3 công việc: Gán đối tượng vào pool các đối tượng m...
studybot viết hơn 3 năm trước
8 1
Bài viết liên quan
Male avatar
0 0
Hàm số trim space fullsize và halfsize trong PHP / Remove space fullsize @param string $str string before remove @return string after remov...
skul169 viết gần 2 năm trước
0 0
White
1 0
Mở đầu Như đã nói ở bài trước, mình đang nghiên cứu về Spark nên cần log lại một số thứ để dành sau này dùng đến :smile: Đối tượng hướng đến vẫn ...
Phạm Quốc Thắng viết hơn 2 năm trước
1 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
15 bài viết.
9 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!