怎么表示开头结尾
^ 表示开头
$ 表示结尾
什么是元字符
在正则里有特殊含义的,比如[ ] $ ^ \n等
什么字符类
用中括号包裹起来,里面用来描述符合某一特征的
字符类反向类
[^abc] 不是a或b或c的
范围类
[a-z]
预定义类
. : 非换行符号,非回车符
\d: 数字
\D: 非数字
\s: 空白
\S: 非空白
\w: 数字,字母,下划线
\W: 非数字,非字母,非下划线
\b: 单词边界
\B: 非单词边界
量词
? : 零次或者一次
+ :一次或者多次
* :任意次
{n} : n次
{m, n} : m次到n次
{n} : 至少n次
如何全匹配
使用单词边界,比如用\bis\b能匹配到is,但匹配不到display
怎么分组
用括号,比如http:\/\/(.*\.png),匹配到的$1就是XXX.png
怎么表述或的关系
用中括号,比如[/-]
怎么表述某个匹配值的数量
用花括号,比如\d{4},表述4个数字
如何全局匹配
加上g
比如/\bis\b/g
如何忽略大小写
默认是不忽略的,如要忽略,用/\bis\b/gi
如何进行多行搜索
用/\bis\b/gim
非贪婪模式
默认是贪婪模式,如要非贪婪,加上问号。
比如\d{3,6}?,即匹配还没到6,但超过3了,也算匹配成功
如何在字符串里表示或
利用分组,
abc(X|Y)de
如何忽略某个分组
使用?:
(?:abc)(\d)
前瞻
使用?=
/\w(?=\d)/ 表示匹配\w后,后面还必须是一个数字,算是一种断言
test方法(正则的api)
reg.test(xxx) 返回布尔值
exec方法(正则的api)
reg.exec(xxx) 返回的是数组,分别是匹配的内容,匹配的数组
search方法
xxx.search(/\w/g)
xxx.search(1)等于xxx.search(/1/)
split用法也类似,可写数字字符串或者正则
match
与search类似,但返回的是数组,分别是匹配的内容,匹配的数组