正则表达式学习记录

1.字符类型

\d数字0-9,\D非数字0-9,\s空白符,\S非空白符,.非换行符之外的所有符号,\w数字字母下划线,\W非数字字母下划线,等,

2.字符数量(量词)

基本表示({}):

{1}匹配1个,{1,3}匹配一个到3个,{1,}匹配一个以上,

简写表示:

? 匹配0个到1个,等效{0,1}  ;*  匹配0个到多个,等效{0,};+ 匹配1个到多个,等效{1,}

3.位置信息

^ :开始位置,$结束位置,\b整个单词的边缘位置,(?=p)紧贴p前面的位置(p代表模式),(?!p)紧贴p前面位置以外的位置,(?<=p)紧贴p后面的位置,(?<!)紧贴p后面的位置以外的位置

4.匹配模式

关于() [] | 等符号的应用

| 表示分支或,如 tony is a good boy中匹配good和boy可以用/good|boy/

()  表示分组 如ababcd中要匹配abab,可以用/(ab){2}/,同时()可以用反向引用,如:a-b-c a/b/c a:b:c 中匹配所有abc这种,可以用a([-\/:])b\1c,

反向引用以左括号为标准,从左到右依次是\1 \2 \3...,在replace中可用$1,$2,$3...表示如'a-b-c-d'.replace(/(.)-(.)-(.)-(.)/,'$1=$2=$3=$4')结果为a=b=c=d,

(?:) 则表示非捕获分组(即不参与引用)

[]  表示取值范围,[]中始终表示其中之一,如[0-9]表示0到9中的一个,[abc]表示abc中的一个,^在[]中代表取反,[^abc]表示除了abc以外的字符(注意:是全局取反,而不是除了abc以外的字母)

?  默认正则是贪婪模式,在量词后面加?表示非贪婪模式 如abcdefa 匹配[a-z]{3,5}结果是abcde ,匹配到足够多,能匹配到5个绝不按照三个来,这就是贪婪模式,而当用?之后,正则为

[a-z]{3,5}?,匹配结果为 abc def

 

 

posted @ 2019-12-05 09:34  superjsman  阅读(121)  评论(0编辑  收藏  举报