Regex để lọc tiếng Việt

em biết + là >=1, tại string của em có nhiều hơn 1 kí tự mà nó chỉ xét 1 mà đã kết luận luôn nên em nhập nhằng chút

1 Like

em xài re.findall ấy, nó trả về tất cả các chuỗi match luôn. Ko có dấu + nó trả về mảng từng ký tự =]

4 Likes

b = “a*”, em bị khó hiểu ở cái chuỗi này, không hiểu sao nó match cái này

1 Like

em lên trang regex101.com mà vọc :V Nhớ chọn Python bên trái. Nó có giải thích ý nghĩa bên phải luôn :V

3 Likes

em có test trên đấy, nhưng chẳng hiểu sao, lúc test trên đấy được, vào code test lại, thì lại miss, luẩn quẩn hết cả lên anh ạ, vong vo nãy giờ

1 Like

nó có nút Code Generator mà, bấm vô nó tạo sample cho mà biết xài @_@

4 Likes

em muốn truyền vào một string và trả về xem string có có thõa mãn hay không, dùng cái findall kia thì không được rồi, lẽ ra cái xâu a* phải bị loại.

1 Like

chắc em so sánh len của cái re.search vậy.

1 Like

à em muốn match toàn bộ chuỗi hả? Vậy thì thêm ^ ở đầu và $ ở cuối chuỗi regex :V

^[aá...]+$

3 Likes
b = u'b\u1edfi_v\u1eady'
regex  = re.compile('^[aàảãáạăằẳẵắặâầẩẫấậbcdđeèẻẽéẹêềểễếệfghiìỉĩíịjklmnoòỏõóọôồổỗốộơờởỡớợpqrstuùủũúụưừửữứựvwxyỳỷỹýỵz0123456789_]+$')
matches = re.search(regex,b)

cùng là lệnh thế này, mà b của em ơ dạng unicode thì matches lại null anh ạ

type của nó ấy.

1 Like

xài Python 3 đi em =]

2 Likes

cái project em đang theo nó là python2 anh ạ

1 Like

vậy em phải thêm re.UNICODE vào chỗ re.compile ấy :V

3 Likes
regex  = re.compile('^[aàảãáạăằẳẵắặâầẩẫấậbcdđeèẻẽéẹêềểễếệfghiìỉĩíịjklmnoòỏõóọôồổỗốộơờởỡớợpqrstuùủũúụưừửữứựvwxyỳỷỹýỵz0123456789_]+$',re.UNICODE)

vẫn NULL anh ạ

1 Like

chắc cái chuỗi regex đó cũng phải là chuỗi unicode :V u'

re.compile(u'^[aàảãá
3 Likes

thêm cái dấu $ ở cuối có vấn đề gi không anh:
link
here

1 Like

^ là match đầu chuỗi
$ là match cuối chuỗi
em tưởng tượng input có thêm 2 ký tự đầu và cuối, ^ $ sẽ match 2 ký tự này :V
ví dụ [abc]+ với input aa bb cc nó match aa bb cc
thì ^[abc]+ nó chỉ match aa
[abc]+$ chỉ match cc
^[abc]+$ ko match cái nào :V Nếu input là abc thì nó match abc tức là match string phải gồm có ký tự tưởng tượng ở đầu và ký tự tưởng tượng ở cuối chuỗi luôn

4 Likes

Cái này anh viết nhầm ạ

1 Like

… là tượng trưng thôi :V Ví dụ … này sẽ là [abc]+ :V

update khỏi hiểu lầm ~.~

3 Likes

bây giờ em có nên convert cái unicode sang str để match không ạ, em tìm nãy giờ không thấy cái nào hướng dẫn conver unicode to string, tooàn báo lỗi

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?