正则小公举
语法
- [abc]单个字符:a或b或c
- [^abc]a,b,c以外的单个字符
- [a-zA-Z0-9]字符范围
- .任意字符
- \s空字符
- \S非空字符
- \d数字字符
- \D非数字字符
- \w单词(字母,数字,下划线)
- \W非单词
- \b单词边界
- \b非单词边界
- ^开头
- $结尾
- (...)分组
- (a|b)a或b
- a*重复0次或多次
- a?重复0次或1次
- a+重复1次或多次
- a{3}重复3次
- a{3,}重复3次或多次
- a{3,5}重复3到5次
- ?非贪婪匹配
- (?:abc)非捕获分组
- (?=abc)正向匹配abc
- (?!abc)正向不匹配abc
- \xhh十六进制hh字符
- \uhhhh十六进制hhhh字符
- \u{hhhh}(仅当设置了u标志时)十六进制hhhh字符
- \cX控制字符
- \0空字符
- \aalert字符
- \t制表符
- \n换行符
- \v垂直制表符
- \f换页符
- \r回车符
- \eescape字符
- [\b]退格符
(?=y)
|
匹配'x'仅仅当'x'后面跟着'y'.这种叫做先行断言。 例如,/Jack(?=Sprat)/会匹配到'Jack'仅仅当它后面跟着'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack’仅仅当它后面跟着'Sprat'或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配结果的一部分。 |
|
(?<=y) x
|
匹配'x'仅仅当'x'前面是'y'.这种叫做后行断言。 例如,/(?<=Jack)Sprat/会匹配到' Sprat '仅仅当它前面是' Jack '。/(?<=Jack|Tom)Sprat/匹配‘ Sprat ’仅仅当它前面是'Jack'或者是‘Tom’。但是‘Jack’和‘Tom’都不是匹配结果的一部分。 |
|
x(?!y)
|
仅仅当'x'后面不跟着'y'时匹配'x',这被称为正向否定查找。 例如,仅仅当这个数字后面没有跟小数点的时候,/\d+(?!\.)/ 匹配一个数字。正则表达式/\d+(?!\.)/.exec("3.141")匹配‘141’而不是‘3.141’ |
|
(?<!y)x
|
仅仅当'x'前面不是'y'时匹配'x',这被称为反向否定查找。 例如, 仅仅当这个数字前面没有负号的时候, |