^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