正则表达式

多个字符

匹配区间 正则表达式 记忆方式
除了换行符之外的任何字符 . 句号,除了句子结束符
单个数字, [0-9] \d digit
除了[0-9] \D not digit
包括下划线在内的单个字符,[A-Za-z0-9_] \w word
非单字字符 \W not word
匹配空白字符,包括空格、制表符、换页符和换行符 \s space
匹配非空白字符 \S not space
161563
 

 

匹配次数

0 | 1

元字符?代表了匹配一个字符或0个字符,匹配colorcolour,/colou?r/

 

>= 0

元字符*用来表示匹配0个字符或无数个字符

>= 1

元字符+适用于要匹配同个字符出现1次或多次的情况。

特定次数

- {x}: x次

- {min, max}: 介于min次到max次之间

- {min, }: 至少min次

- {0, max}: 至多max次

 

匹配规则 元字符 联想方式
0次或1次 ? ,此事
0次或无数次 * 宇宙洪荒,辰宿列张:宇宙伊始,从无到有,最后星宿布满星空
1次或无数次 + 一加, +1
特定次数 {x}, {min, max} 可以想象成一个数轴,从一个点,到一个射线再到线段。min和max分别表示了左闭右闭区间的左界和右界

 

边界

The cat scattered his food all over the room.

匹配cat,而不匹配scatte 用\b

/\bcat\b/

xxx_love_study_1.mp4,想要把他变成❤️xxx_love_study_1❤️.❤️mp4❤️

'xxx_love_study_1.mp4'.replace(/\b/g, '❤️')


'[[xxx_love_study_1.mp4]]'.replace(/\B/g, '❤️')  会变成

❤️[❤️[x❤️x❤️x❤️_❤️l❤️o❤️v❤️e❤️_❤️s❤️t❤️u❤️d❤️y❤️_❤️1.m❤️p❤️4]❤️]❤️

 

 

如匹配I am scq000.这个句子:

I am scq000.
I am scq000.
I am scq000.

/^I am scq000\.$/m

 

边界和标志 正则表达式 记忆方式
单词边界 \b boundary
非单词边界 \B not boundary
字符串开头 ^ 头尖尖那么大个
字符串结尾 $ 终结者,美国科幻电影,美元符$
多行模式 m标志 multiple of lines
忽略大小写 i标志 ignore case, case-insensitive
全局模式 g标志 global

 

总结

single char quantifiers(数量) position(位置)
\d 匹配数字 * 0个或者更多 ^一行的开头
\w 匹配word(数字、字母) + 1个或更多,至少1个 $一行的结尾
\W 匹配word(数字、字母) ? 0个或1个,一个Optional \b 单词"结界"(word bounds)
\s 匹配white space(包括空格、tab等) {min,max}出现次数在一个范围内
\S 匹配white space(包括空格、tab等) {n}匹配出现n次的
. 匹配任何,任何的字符

 

 

$1,$2...是表示的小括号里的内容

$1是第一个小括号里的 ,$2是第2个小括号里的

比如 /hell([\w]+?)world([\d]+)/

匹配 helloworld123

$1= 括号里的 o

$2= 第2个括号里的 123

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读剩余
THE END