Day17笔记
一、正则表达式
定义:
- 正则表达式全称“Regular Expression”,在代码中常简写为regex、regexp或RE。
- 正则表达式就是用某种模式去匹配(match)、查找(search)、替换(replace)、判断一类字符串的公式。
语法:
// 显式定义。
var reg = new RegExp("正则表达式")
// 隐式定义。
var reg = /正则表达式/
// 举例,这两种写法效果一样。
var reg = new RegExp("\d+")
=>
var reg = /\d+/
二、正则表达式常用方法
test
// 正则去匹配字符串,如果匹配成功就返回true,匹配失败返回false。
var str = '字符串'
var reg = /正则表达式/
reg.test(str) => true/false
search
// 字符串去匹配正则,如果匹配成功,就返回匹配成功的位置(index),如果匹配失败就返回-1。
var str = '字符串'
var reg = /正则表达式/
str.search(reg) => index/-1
match
// 字符串去匹配正则,如果匹配成功,就返回匹配成功的数组,如果匹配失败就返回null。
var str = '字符串'
var reg = /正则表达式/
str.match(reg) => array/null
replace
// 字符串去匹配正则,匹配成功的字符会被新的字符串替换。
var str = '字符串'
var reg = /正则表达式/
var newStr = str.replace(reg,'replaceStr') => newStr(替换后的新数组)
三、正则表达式常用元字符
元字符 | 说明 |
---|---|
\d | 匹配数字,相当于[0-9] |
\D | 匹配非数字 |
\w | 匹配字母或数字或汉字或下划线 |
\W | 匹配非(字母、数字、汉字、下划线)的字符 |
\s | 匹配任意的空白符,如空格、换行符、制表符等 |
\S | 匹配任意不是空白符的字符 |
. | 匹配除了换行符意外的任意字符 |
[…] | 匹配括号内的所有字符 |
[^…] | 匹配除了括号内的所有字符 |
连接符
// 定义字符范围
[0123456789] => [0-9]
[a-z]
[A-Z]
[a-zA-Z0-9]
限定符-量词
限定符 | 说明 |
---|---|
+ | 重复1次或更多次 |
* | 重复0次或更多次 |
? | 重复0次或1次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次(最少n次) |
{n,m} | 重复n到m次 |
定位符-边界
定位符 | 说明 |
---|---|
^ | 限定开始位置的字符 |
$ | 限定结尾位置的字符 |
\b | 限定单词(字)边界的字符 |
\B | 限定非单词(字)边界的字符 |
注:当^字符和$字符同时使用时,表示精确匹配。
修饰符
修饰符 | 说明 |
---|---|
g | 全文搜索,如果不添加,正则匹配到第一个符合的字符将会停止 |
i | 忽略大小写 |
m | 多行搜索 |
注:使用位置在正则表达式后 => /正则表达式/g。
特殊转义符
特殊转义符 | 说明 |
---|---|
\f | 匹配换页符 |
\n | 匹配换行符 |
\r | 匹配回车符 |
\t | 匹配制表符 |
\v | 匹配垂直制表符 |
\ | 匹配\ |
" | 匹配"" |
’ | 匹配’’ |
. | 匹配. |
Unix系统里,每行结尾只有"<换行>",即"\n"
Windows系统里,每行结尾时"<换行><回车>",即"\n\r"
Mac系统里,每行结尾时"<回车>",即"\n"
选择符
// 选择符,“或”运算
|
优先级顺序(从高到低)
运算符或表达式 | 说明 |
---|---|
\ | 转义符 |
()、(?😃、(?=)、[] | 圆括号或方括号 |
*、+、?、{n}、{n,}、{n,m} | 限定符 |
^、$、\b、\B | 位置和顺序 |
| | 选择符 |