Khi bạn lần đầu gặp Biểu thức chính quy, chúng có vẻ như là một chuỗi vô nghĩa ngẫu nhiên. Mặc dù trông có vẻ khó xử (với cú pháp hơi khó hiểu), nhưng chúng cũng cực kỳ hữu ích Show
Sự thật là hiểu đúng các biểu thức chính quy sẽ giúp bạn trở thành một lập trình viên hiệu quả hơn nhiều. Để hiểu đầy đủ về thế giới biểu thức chính quy, trước tiên bạn cần tìm hiểu các khái niệm cơ bản để sau này bạn có thể xây dựng Vì vậy, không cần phải quảng cáo thêm, hãy bắt đầu. ) Mẹo. Sử dụng ứng dụng xây dựng Bit nhanh hơn với các thành phần. Nó giúp bạn chia sẻ và tái sử dụng các thành phần với nhóm của mình và sử dụng chúng để xây dựng các ứng dụng mới. Hãy thử một lần Hợp tác và khám phá thành phần · BitBit là nơi các nhà phát triển chia sẻ các thành phần và hợp tác để cùng nhau xây dựng phần mềm tuyệt vời. Khám phá các thành phần được chia sẻ…chút. nhà phát triển Phản ứng spinners với Bit. Chọn, Chơi, Cài đặtBiểu thức chính quy là gì? Biểu thức chính quy là một cách để mô tả các mẫu trong dữ liệu chuỗi. Chúng tạo thành một ngôn ngữ nhỏ của riêng nó, là một phần của nhiều ngôn ngữ lập trình như Javascript, Perl, Python, Php và Java Biểu thức chính quy cho phép bạn kiểm tra một chuỗi ký tự như địa chỉ email hoặc mật khẩu để tìm các mẫu, để xem liệu chúng có khớp với mẫu được xác định bởi biểu thức chính quy đó hay không và tạo ra thông tin có thể thực hiện được Tạo một biểu thức chính quyCó hai cách để tạo biểu thức chính quy trong Javascript. Nó có thể được tạo bằng hàm tạo RegExp hoặc bằng cách sử dụng dấu gạch chéo lên ( / ) để bao quanh mẫu Trình tạo biểu thức chính quycú pháp. var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true6 Ví dụ var regexConst = new RegExp('abc'); Cụm từ thông dụngcú pháp. var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true7 Ví dụ var regexLiteral = /abc/;
Cũng có thể có trường hợp bạn muốn tạo biểu thức chính quy một cách linh hoạt, trong trường hợp đó, biểu thức chính quy sẽ không hoạt động, vì vậy bạn phải sử dụng hàm tạo biểu thức chính quy Cho dù bạn chọn phương thức nào, kết quả sẽ là một đối tượng biểu thức chính quy. Cả hai đối tượng regex sẽ có các phương thức và thuộc tính giống nhau được đính kèm với chúng Vì dấu gạch chéo lên được sử dụng để bao quanh các mẫu trong ví dụ trên, bạn phải thoát khỏi dấu gạch chéo lên var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true8 bằng dấu gạch chéo ngược var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true9 nếu bạn muốn sử dụng nó như một phần của biểu thức chính quyPhương thức biểu thức chính quy Chủ yếu có hai phương pháp để kiểm tra các biểu thức chính quy RegExp. nguyên mẫu. kiểm tra()Phương pháp này được sử dụng để kiểm tra xem một trận đấu đã được tìm thấy hay chưa. Nó chấp nhận một chuỗi mà chúng tôi phải kiểm tra theo biểu thức chính quy và trả về ____60hoặc ____61tùy thuộc vào việc có tìm thấy kết quả khớp hay không Ví dụ var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true RegExp. nguyên mẫu. giám đốc điều hành ()Phương thức này trả về một mảng chứa tất cả các nhóm phù hợp. Nó chấp nhận một chuỗi mà chúng ta phải kiểm tra theo biểu thức chính quy Ví dụ var regex = /hello/;var str = 'hello world';var result = regex.exec(str);console.log(result);// returns [ 'hello', index: 0, input: 'hello world', groups: undefined ]// 'hello' -> is the matched pattern. Chúng tôi sẽ sử dụng phương pháp var regex = /hello/;var str = 'hello world';var result = regex.exec(str);console.log(result);// returns [ 'hello', index: 0, input: 'hello world', groups: undefined ]// 'hello' -> is the matched pattern.2 trong bài viết nàyCác mẫu Regex đơn giản Đây là mẫu cơ bản nhất, chỉ đơn giản là khớp văn bản bằng chữ với chuỗi kiểm tra. Ví dụ var regexConst = new RegExp('abc'); 1Nhân vật đặc biệtCho đến bây giờ, chúng tôi đã tạo các mẫu biểu thức chính quy đơn giản. Bây giờ, hãy khai thác toàn bộ sức mạnh của biểu thức chính quy khi xử lý các trường hợp phức tạp hơn Ví dụ: thay vì khớp một địa chỉ email cụ thể, giả sử chúng tôi muốn khớp một số địa chỉ email. Đó là nơi các nhân vật đặc biệt phát huy tác dụng. Có các ký hiệu và ký tự đặc biệt mà bạn phải ghi nhớ để hiểu đầy đủ các biểu thức chính quy cờCụm từ thông dụng có năm cờ hoặc công cụ sửa đổi tùy chọn. Hãy thảo luận về hai lá cờ quan trọng nhất
Bạn cũng có thể kết hợp các cờ trong một biểu thức chính quy. Lưu ý rằng thứ tự của họ không có bất kỳ ảnh hưởng nào đến kết quả Hãy xem xét một số ví dụ mã Biểu thức chính quy Literal — Cú pháp var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true7 var regexConst = new RegExp('abc'); 3Trình tạo biểu thức chính quy — Cú pháp var regex = /hello/;var str = 'hello world';var result = regex.exec(str);console.log(result);// returns [ 'hello', index: 0, input: 'hello world', groups: undefined ]// 'hello' -> is the matched pattern.4 var regexConst = new RegExp('abc'); 5nhóm nhân vậtBộ ký tự [xyz] — Bộ ký tự là một cách để khớp các ký tự khác nhau ở một vị trí, nó khớp với bất kỳ ký tự đơn nào trong chuỗi từ các ký tự có trong dấu ngoặc. Ví dụ var regexConst = new RegExp('abc'); 6Lưu ý — Tất cả các ký tự đặc biệt ngoại trừ dấu mũ var regex = /hello/;var str = 'hello world';var result = regex.exec(str);console.log(result);// returns [ 'hello', index: 0, input: 'hello world', groups: undefined ]// 'hello' -> is the matched pattern.5 (Có ý nghĩa hoàn toàn khác bên trong bộ ký tự) sẽ mất ý nghĩa đặc biệt của chúng bên trong bộ ký tự Bộ ký tự phủ định [^xyz] — Nó khớp với bất kỳ thứ gì không nằm trong dấu ngoặc. Ví dụ var regexConst = new RegExp('abc'); 8Phạm vi [a-z] — Giả sử chúng ta muốn khớp tất cả các chữ cái trong bảng chữ cái ở một vị trí duy nhất, chúng ta có thể viết tất cả các chữ cái bên trong dấu ngoặc, nhưng có một cách dễ dàng hơn và đó là phạm vi. Ví dụ. [a-h] sẽ khớp với tất cả các chữ cái từ a đến h. Phạm vi cũng có thể là các chữ số như [0-9] hoặc chữ in hoa như [A-Z] var regexConst = new RegExp('abc'); 9Siêu ký tự — Siêu ký tự là những ký tự có ý nghĩa đặc biệt. Có nhiều nhân vật meta nhưng tôi sẽ đề cập đến những nhân vật quan trọng nhất ở đây
định lượng. — Lượng từ là các ký hiệu có ý nghĩa đặc biệt trong một biểu thức chính quy
var regexLiteral = /abc/; 0
var regexLiteral = /abc/; 1
var regexLiteral = /abc/; 2
var regexLiteral = /abc/; 3
var regexLiteral = /abc/; 4
var regexLiteral = /abc/; 5
var regexLiteral = /abc/; 6
var regexLiteral = /abc/; 7luân phiên X. Y — Phù hợp với X hoặc Y. Ví dụ var regexLiteral = /abc/; 8Lưu ý — Nếu bạn muốn sử dụng bất kỳ ký tự đặc biệt nào như một phần của biểu thức, chẳng hạn như bạn muốn khớp với chữ var regexConst = new RegExp('abc'); 10 hoặc var regexConst = new RegExp('abc'); 11, thì bạn phải thoát chúng bằng dấu gạch chéo ngược var regexConst = new RegExp('abc'); 12Ví dụ var regexLiteral = /abc/; 9Nâng cao(x) — So khớp với x và ghi nhớ kết quả khớp. Chúng được gọi là các nhóm chụp. Điều này cũng được sử dụng để tạo các biểu thức phụ trong một biểu thức chính quy. Ví dụ. - var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true0 var regexConst = new RegExp('abc'); 13 ghi nhớ và sử dụng kết quả khớp từ biểu thức con đầu tiên trong ngoặc đơn(?. x) — Khớp x và không nhớ khớp. Chúng được gọi là các nhóm không bắt giữ. Ở đây var regexConst = new RegExp('abc'); 13 sẽ không hoạt động, nó sẽ khớp với var regexConst = new RegExp('abc'); 13 theo nghĩa đenvar regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true1 x(?=y) — Chỉ khớp với x nếu theo sau x là y. Còn được gọi là cái nhìn tích cực về phía trước. Ví dụ var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true2 Trong ví dụ trên, khớp sẽ chỉ xảy ra nếu theo sau var regexConst = new RegExp('abc'); 16 là var regexConst = new RegExp('abc'); 17Thực hành RegexHãy thực hành một số khái niệm mà chúng ta đã học ở trên
var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true3 Hãy phá vỡ nó và xem những gì đang xảy ra ở đó
var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true4 Hãy phá vỡ nó và xem những gì đang xảy ra ở đó
Biểu thức phải khớp với bất kỳ chuỗi nào có định dạng như var regexConst = new RegExp('abc'); 56 trong đó mỗi biến var regexConst = new RegExp('abc'); 57 có thể là bất kỳ ký tự nào ngoại trừ dòng mớivar regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true5 Hãy phá vỡ nó và xem những gì đang xảy ra ở đó
Đôi khi, biểu thức chính quy có thể khá phức tạp, nhưng hiểu đúng về các khái niệm trên sẽ giúp bạn hiểu các mẫu biểu thức chính quy phức tạp hơn một cách dễ dàng. Bạn có thể tìm hiểu thêm về regex tại đây và thực hành tại đây Vậy là xong, nếu bạn thấy bài viết này hữu ích, hãy nhấn nút 👏 (vài lần) và chia sẻ bài viết để mọi người dễ dàng tìm thấy. ) Bạn cũng có thể theo dõi tôi trên Medium và Twitter. )Tìm hiểu thêm Làm cách nào để khớp một từ trong JavaScript regex?Sử dụng phương thức test()
. Phương thức này sẽ trả về một giá trị Boolean làm đầu ra.
Ký tự từ trong regex là gì?Ký tự từ là ký tự a-z, A-Z, 0-9, bao gồm cả _ (dấu gạch dưới) .
Làm cách nào để khớp các ký tự đặc biệt trong biểu thức chính quy trong JavaScript?1. 1 Tóm tắt cú pháp Regex . Để khớp một ký tự có ý nghĩa đặc biệt trong biểu thức chính quy, bạn cần sử dụng tiền tố chuỗi thoát với dấu gạch chéo ngược ( \ ). . Bạn cũng cần sử dụng regex \\ để khớp với "\" (dấu gạch chéo ngược) Regex 0 * 1 * 0 * 1 * có nghĩa là gì?Về cơ bản (0+1)* toán học bất kỳ dãy số nào và số nào . Vì vậy, trong ví dụ của bạn (0+1)*1(0+1)* phải khớp với bất kỳ chuỗi nào có 1. Nó sẽ không khớp với 000 , nhưng nó sẽ khớp với 010 , 1 , 111 , v.v. (0+1) nghĩa là 0 HOẶC 1. 1* có nghĩa là bất kỳ số nào. |