正则表达式
2018-10-30 08:58:06 10 举报
AI智能生成
基础正则表达式思维导图
作者其他创作
大纲/内容
五、特殊字符
\
正常字符前面如果有\。表示这个字符是特殊字符不再是原来的字符含义,如\b表示单词边界
特殊字符前面加了\。则特殊字符变为普通字符.如*表示0或多个,\*就表示*
使用new RegExp方式时,因其第一个参数是字符串,所以项使用\转义时,要写\\
\b单词边界,\B非边界
\n换行
\r回车
\s匹配一个空白字符,包括空格、制表符、换页符和换行符,\S非空白
\w匹配一个单字字符(字母、数字或者下划线).\W非单字字符
^
匹配输入的开始,如果是多行模式,则可也匹配一行的开始
当^作为第一个字符出现在一个字符集合模式时,它将会有不同的含义,如[^.....]
$
匹配输入的结束,如果是多行模式,则可也匹配一行的结尾
.
匹配除了换行以为的任意一个字符
(x)分组
匹配x并记住,()称为捕获括号
正则中可也用\1..\9来替代匹配
但在replace中。则用“$1 $2”等来代替
分组捕获中如果有全局,则不在捕获,需要用到\g时用reg.exec
(?:x)
匹配x但不记住,称为非捕获括号,因为分组只有9个
x(?=y)
匹配x并且也后面必须是y
x(?!y)
匹配x并且后面必须不是y
x|y
匹配x或者y
[]
[xyz]
或者x,y,z都可也
/[18]/表示的是1或者8都满足
/[12-89]/表示的是1或2到8或9
[^xyz]
非,不是x,不是y,不是z
范围[0-9],[z-z],[a-zA-Z0-9]
二、创建
1、使用正则表达式字面量
1.1 /pattern/flags
1.2 脚本加载后即可得到编译,如果你的表达式不是变化的,用这种效率更高
2、使用RegExp对象
new RegExp(pattern[,flags])
2.2 这种方式,在运行时编译,如果事先不确定表达式可用此方法
三、编写
1简单模式
1.1直接给出匹配的字符,如/abc/就匹配abc
2使用特殊字符
2.1/ab*c/匹配一个a,后面0个或多个b,最后c
四、基础
1字符串和RegExp的方法
reg.exec
reg.exec(str)返回匹配的结果数组,不匹配则返回null,每执行一次exex就向后匹配一次
如果表达式里面有括号,成为组匹配,返回结果种,第一个是整体匹配结果,后面依次是每个组匹配结果的副本
如果表达式有g选项进行全局搜索,则可也多次使用exec,下次的匹配从上次的结果开始
reg.test
reg.test(str)返回true或false,表示是否匹配成功
str.match
str.match(reg),与reg.exec相似,但是,如果使用g选项,则str.match一次性返回所有结果
str.search
str.seach(reg),返回匹配成功的第一个位置
str.replace
str.replace(reg,newstr),替换匹配成功的结果
str.split
str.split(reg,maxLength)用匹配模式切割,第二个参数是限制返回结果的最大数量
2img选项
i忽略大小写
m多行模式
g全局搜索
3次数{}
{n}
前面你字符正好n次
{n,m}
最少n次,最多m次
+
匹配前一个表达式一次或多次,等价于{1,}
?
匹配前一个表达式0次或1次,等价于{0,1}
如果经跟在任何量词*、+、?或{}后面,将会使量词变为非贪婪模式,默认为贪婪模式
*
匹配前一个表达式0次或多次(有或者没有都行),等价于{0,}
4贪婪
0 条评论
下一页