01/10/2018, 09:56

Thắc mắc về Regular Expression. Liệu Ví dụ có bị sai? Và xin thêm ví dụ

Em thấy hình như ví dụ nó sai. Đáng lẽ phải có chữ the nữa mới đúng.
Thật sự em chưa rành lắm ở chỗ này. Ai đó có thể cho em thêm một số ví dụ được không ạ?

Đẵng Nguyễn Quốc viết 11:58 ngày 01/10/2018

Bạn định hỏi cái gì vậy ? Lập trình hay từ ngữ vậy ?

Henry viết 12:07 ngày 01/10/2018

e hỏi cái ví dụ regular expression này thôi ạ.

Đào An viết 12:10 ngày 01/10/2018

Muốn biết sai hay ko thì code là ra ngay hỏi làm gì cho mệt.
Muốn nhớ lâu cái này thì vào codewar mà làm bài tập https://www.codewars.com/kata/search/?q=&tags=Regular+Expressions&beta=false
http://sv1.upsieutoc.com/2017/06/05/Screenshotfrom2017-06-0516-57-12.png
p/s: đọc mấy lần mới hiểu câu hỏi
p/s2: mới tìm đc trang này học khá hay https://regexone.com/

Henry viết 12:02 ngày 01/10/2018

cho e hỏi thêm là \bt\w+\b nó có bằng với \bt\w+ không ạ?

Đào An viết 12:06 ngày 01/10/2018

Với chuỗi trên thì giống, test thử pattern giống hay ko thì vào http://regexr.com/ hoặc https://regex101.com/
Học về regex https://regexone.com/

Henry viết 12:06 ngày 01/10/2018

a có thể cho e một ví dụ mà nó khác nhau được không ạ?

Đào An viết 12:00 ngày 01/10/2018

M thấy nó giống nhau và ko khác nhau

Henry viết 11:58 ngày 01/10/2018

Với chuỗi trên thì giống

tại a nói thế này.

Đào An viết 12:12 ngày 01/10/2018

thực sự m cũng ko để ý lắm vì muốn test cái gì thì cứ vào 2 trang trên, nên cũng ko bận tâm.
M thấy ứng dụng của thằng regular expression này là để validation data là nhiểu, mà cái này thì pattern có sẵn trên mạng đầy rẫy nên ko nhọc óc thiết kế làm gì. https://kipalog.com/posts/30-doan-bieu-thuc-chinh-quy-ma-lap-trinh-vien-web-nen-biet
Đơn giản cái gì có sẵn thì ta sài

Henry viết 12:04 ngày 01/10/2018

e học cho vui. Chứ không phải sử dụng để làm cái gì cả do đó e muốn biết

Đào An viết 11:59 ngày 01/10/2018
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Đây là 1 pattern kiểm tra xem 1 chuỗi có phải là 1 email ko. Nhìn xong là m chỉ muốn sử dụng chứ ko muốn biết nó hoạt động như nào rồi

Henry viết 12:08 ngày 01/10/2018

e định thử thách bản thân kiểm tra 1 chuỗi có phải là email hay không. Nhưng thôi e không làm nữa đâu

Đào An viết 12:10 ngày 01/10/2018

Tự làm thì vẫn được nhưng lọt nhiều trường hợp. Product mà để lọt thì …

Henry viết 12:06 ngày 01/10/2018

tự làm thì miss rất nhiều cái

Ice Tea viết 12:02 ngày 01/10/2018

Phải match cả the chứ, không biết bạn đọc tài liệu này ở đâu?

Henry viết 11:56 ngày 01/10/2018

Đây ạ
http://ryanstutorials.net/regular-expressions-tutorial/regular-expressions-intermediate.php#wordbountaries

Ice Tea viết 12:05 ngày 01/10/2018

Các ngôn ngữ khác nhau có thể implement regex khác nhau, trang này dạy mà không nói cụ thể nó áp dụng loại regex nào.
Trang này họ viết là:

\b
Matches the beginning or end of a word.

Khác với 2 trang sau, vd: https://regex101.com/r/sm0GsL/1

\b assert position at a word boundary (^\w|\w$|\W\w|\w\W)

==> Bắt đầu bằng 1 ký tự từ (word character, dịch sang tiếng Việt hơi củ chuối, hiểu nôm na là các ký tự tạo nên 1 từ bao gồm [a-zA-Z0-9_]), hoặc kết thúc bằng 1 word character hoặc ở giữa 1 word character và 1 non-word character.

http://www.regular-expressions.info/wordboundaries.html:

There are three different positions that qualify as word boundaries:
  + Before the first character in the string, if the first character is a word character.
  + After the last character in the string, if the last character is a word character.
  + Between two characters in the string, where one is a word character and the other is not a word character.

Mình thấy trang http://www.regular-expressions.info là viết đầy đủ nhất, nếu bạn muốn lên thần thì nên học ở đây

Henry viết 12:02 ngày 01/10/2018

e cám ơn nhiều ạ…cho đủ 20 chars

Bài liên quan
0