正则表达式
多个字符
匹配区间 | 正则表达式 | 记忆方式 |
---|---|---|
除了换行符之外的任何字符 | . | 句号,除了句子结束符 |
单个数字, [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个字符,匹配color
和colour
,/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
阅读剩余
版权声明:
作者:chun
链接:https://chun53.top/1650.html
文章版权归作者所有,未经允许请勿转载。
THE END