Regex tutorial — A quick cheatsheet by examples

Basic topics

Anchors — ^ and $

^The       Khớp với bất kỳ chuỗi nào bắt đầu bằng The
end$        khớp với một chuỗi kết thúc bằng end
^The end$   chính xác (bắt đầu và kết thúc bằng Kết thúc)
roar       khớp với bất kỳ chuỗi nào có tiếng gầm văn bản trong đó
ví dụ: /a(bc)/g

Quantifiers

abc * khớp với một chuỗi có ab theo sau bằng 0 hoặc nhiều hơn c
abc + khớp với một chuỗi có ab theo sau bởi một hoặc nhiều c
abc? khớp với một chuỗi có ab theo sau là 0 hoặc một c
abc {2} khớp với một chuỗi có ab theo sau bởi 2 c
abc {2,} khớp với một chuỗi có ab theo sau bởi 2 hoặc nhiều hơn c
abc {2,5} khớp với một chuỗi có ab theo sau bởi 2 đến 5 c
a (bc) * khớp với một chuỗi có số 0 hoặc nhiều bản sao của chuỗi bc 
a (bc) {2,5} khớp với một chuỗi có theo sau bởi 2 đến 5 bản sao của chuỗi bc
Ví dụ:/abc*/g

OR operator — | or []

a(b|c)    khớp với một chuỗi có theo sau bởi b hoặc c
a[bc]      giống như trước

Character classes — \d \w \s and .

\ d khớp với một ký tự là một chữ số 
\ w khớp với một ký tự từ (ký tự chữ và số cộng với dấu gạch dưới)
\ s khớp với một ký tự khoảng trắng (bao gồm các tab và ngắt dòng)
. phù hợp với bất kỳ nhân vật nào
\ D khớp với một ký tự không có chữ số
\ $ \ d khớp với một chuỗi có $ trước một chữ số
Ví dụ:
/\d/g
abc ac acb aob a2b a42c
Két qủa: 
Match 1
Full match	16-17	2
Match 2
Full match	20-21	4
Match 3
Full match	21-22	2
ví dụ 2:
/\w/g
abc ac acb aob a2b a42c
Két qủa: 
Match 1
Full match	0-1	a
Match 2
Full match	1-2	b
Match 3
Full match	2-3	c
Match 4
Full match	4-5	a
Match 5
Full match	5-6	c
Match 6
Full match	7-8	a
Match 7
Full match	8-9	c
Match 8
Full match	9-10	b
Match 9
Full match	11-12	a
Match 10
Full match	12-13	o
Match 11
Full match	13-14	b
Match 12
Full match	15-16	a
Match 13
Full match	16-17	2
Match 14
Full match	17-18	b
Match 15
Full match	19-20	a
Match 16
Full match	20-21	4
Match 17
Full match	21-22	2
Match 18
Full match	22-23	c
Ví dụ 3:
/\s/g
abc ac acb aob a2b a42c
Két qủa:
Match 1
Full match	3-4	 
Match 2
Full match	6-7	 
Match 3
Full match	10-11	 
Match 4
Full match	14-15	 
Match 5
Full match	18-19	 
/\D/g
abc ac acb aob a2b a42c
Match 1
Full match	0-1	a
Match 2
Full match	1-2	b
Match 3
Full match	2-3	c
Match 4
Full match	3-4	 
Match 5
Full match	4-5	a
Match 6
Full match	5-6	c
Match 7
Full match	6-7	 
Match 8
Full match	7-8	a
Match 9
Full match	8-9	c
Match 10
Full match	9-10	b
Match 11
Full match	10-11	 
Match 12
Full match	11-12	a
Match 13
Full match	12-13	o
Match 14
Full match	13-14	b
Match 15
Full match	14-15	 
Match 16
Full match	15-16	a
Match 17
Full match	17-18	b
Match 18
Full match	18-19	 
Match 19
Full match	19-20	a
Match 20
Full match	22-23	c
/\$\d/g
It were sold for $1
Kết qủa:
Match 1
Full match	17-19	$1

Flags

g (toàn cầu) không quay lại sau trận đấu đầu tiên, khởi động lại các tìm kiếm tiếp theo từ cuối trận đấu trước

m (nhiều dòng) khi được bật ^ và $ sẽ khớp với đầu và cuối của một dòng, thay vì toàn bộ chuỗi

i (không nhạy cảm) làm cho toàn bộ biểu thức không phân biệt chữ hoa chữ thường (ví dụ / aBc / i sẽ khớp với AbC)

Intermediate topics

Grouping and capturing — ()

a (bc) dấu ngoặc đơn tạo một nhóm bắt giữ có giá trị bc

a (?: bc) * bằng cách sử dụng ?: chúng tôi vô hiệu hóa nhóm chụp

a (? bc) bằng cách sử dụng? chúng tôi đặt tên cho nhóm

Ví dụ: 
/a(bc)/g
abc ac acb aob a2b a42c A87d
Két qủa:
Full match	0-3	abc
Group 1.	1-3	bc
Ví dụ 2:
/a(?:bc)*/g
abc ac acb aob a2b a42c A87d abe
Két qủa:
Match 1
Full match	0-3	abc
Match 2
Full match	4-5	a
Match 3
Full match	7-8	a
Match 4
Full match	11-12	a
Match 5
Full match	15-16	a
Match 6
Full match	19-20	a
Match 7
Full match	29-30	a
ví dụ 3:
/a(?<foo>bc)/g
abc ac acb aob a2b a42c A87d
Két qủa:
Match 1
Full match	0-3	abc
Group `foo`	1-3	bc

Bracket expressions — []

[abc] khớp với một chuỗi có a hoặc b hoặc c giống với a | b | c hoặc [a-c] giống như trước

/[abc]/g
abc ac acb aob a2b a42c A87d
Kết qủa:
Match 1
Full match	0-1	a
Match 2
Full match	1-2	b
Match 3
Full match	2-3	c
Match 4
Full match	4-5	a
Match 5
Full match	5-6	c
Match 6
Full match	7-8	a
Match 7
Full match	8-9	c
Match 8
Full match	9-10	b
Match 9
Full match	11-12	a
Match 10
Full match	13-14	b
Match 11
Full match	15-16	a
Match 12
Full match	17-18	b
Match 13
Full match	19-20	a
Match 14
Full match	22-23	c

Greedy and Lazy match

<.+?> Phù hợp với bất kỳ nhân vật nào một hoặc nhiều lần được bao gồm trong
Ví dụ:
/<.*?>/g
This is a <div> simple div</div> test
Kết qủa:
Match 1
Full match	10-15	<div>
Match 2
Full match	26-32	</div>
<[^ <>] +> phù hợp với bất kỳ ký tự nào ngoại trừ <hoặc> một hoặc nhiều lần được bao gồm bên trong
Ví dụ:
/<[^<>]+>/g
This is a <div> simple div</div> test
Kết qủa:
Match 1
Full match	10-15	<div>
Match 2
Full match	26-32	</div>
Ví dụ/<[^<d>]+>/g
This is a <div> simple div</div> test
Kết qủa:
Your regular expression does not match the subject string.

Advanced topics

Boundaries — \b and \B

\ babc\b thực hiện tìm kiếm "toàn bộ từ"
\ b đại diện cho một neo giống như dấu mũ (nó tương tự như $ và ^)
\Babc\B          matches only if the pattern is fully surrounded by word characters
Ví dụ  1:
/\babc\b /g
ab abc abcc babc
Kết qủa:
Match 1
Full match	3-6	abc
Ví dụ 2:
/\Babc\B/g
ab abc abcc babcd
Kết qủa:
Match 1
Full match	13-16	abc

Back-references — \1

([abc])\1 bằng cách sử dụng \1, nó khớp với cùng một văn bản được khớp với nhóm chụp đầu tiên
Ví dụ:
/([abc])\1/g
abccbaacacb aob a2bb a42c A87d
Kết qủa:
Match 1
Full match	2-4	cc
Group 1.	2-3	c
Match 2
Full match	5-7	aa
Group 1.	5-6	a
Match 3
Full match	18-20	bb
Group 1.	18-19	b
([abc]) ([de])\2\1 chúng ta có thể sử dụng \2 (\3, \4, v.v.) để xác định cùng một văn bản được khớp bởi nhóm chụp thứ hai (thứ ba, thứ tư, v.v.) 
Ví dụ:
/([abc])([de])\2\1/g
adda abceec abcde
Kết qủa:
Match 1
Full match	0-4	adda
Group 1.	0-1	a
Group 2.	1-2	d
Match 2
Full match	7-11	ceec
Group 1.	7-8	c
Group 2.	8-9	e
(?<foo>[abc])\k<foo> chúng tôi đặt tên foo cho nhóm và chúng tôi tham chiếu nó sau (\k<foo>). Kết quả là giống nhau của regex đầu tiên
Ví dụ:
/(?<foo>[abc])\k<foo>/g
abccbaacacb aob a2b a42c A87d
Két qủa:
Match 1
Full match	2-4	cc
Group `foo`	2-3	c
Match 2
Full match	5-7	aa
Group `foo`	5-6	a

Look-ahead and Look-behind — (?=) and (?<=)

d (? = r) chỉ khớp với một d nếu được theo sau bởi r, nhưng r sẽ không phải là một phần của trận đấu regex tổng thể
Ví dụ:
/d(?=r)/g
third drone
Kết qủa:
Match 1
Full match	6-7	d
(? <= r) d chỉ khớp với một d nếu đứng trước một r, nhưng r sẽ không phải là một phần của trận đấu regex tổng thể
/(?<=r)d/g
third drone
Két qủa:
Match 1
Full match	4-5	d

d (?! r) chỉ khớp với một d nếu không được theo sau bởi r, nhưng r sẽ không phải là một phần của trận đấu regex tổng thể

Ví dụ:
/d(?!r)/g
third drone
Két qủa:
Match 1
Full match	4-5	d

(? <! r) d chỉ khớp với một d nếu không đi trước một r, nhưng r sẽ không phải là một phần của trận đấu regex tổng thể

Ví dụ
/(?<!r)d/g
third drone
Kết qủa
Match 1
Full match	6-7	d

https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285

Last updated