正则表达式中三种括号的详细解读
正则表达式中三种括号的详细解读
三种括号的含义 [ ], { }, ( )
1. 中括号[ ]: 匹配单个字符是否属于中括号中的⼀个字符
字符串: hello world!!
js正则表达式: /[eor]/g
匹配到的内容是: h e ll o w o r ld
中括号中有两个特殊, 连接符号 - 和 取反符号 ^
连接符 - 根据ASCII表的值 从⼩到⼤ 中间的范围 (左边ASCII值必须⼩于右边ASCII的值)
1. [0-9] 表⽰ 0到9 之间的数 包括 0 和 9
2. [3-6] 表⽰ 3到6 之间的数 包括 3 和 6
3. [a-z] 表⽰ a-z 之间所有的字母 包含 a 和 z
4. [A-Z] 表⽰ A-Z 之间所有的字母 包含 A 和 Z
5. [0-9A-Z] 表⽰ 0 到 9 和 ⼤写A 到 ⼤写 Z 中间所有字符
6. [!-/] 表⽰ ASCII 表中 ! 到 / 之间的所有字符 包含 ! 和 / 字符
取反符号 ^ 紧跟在^后的⼀个字符, 则不匹配
1. [^a] 表⽰不匹配 a 字符
2. [^abc] 表⽰不匹配 a 字符
3. [^\^^\] 表⽰不匹配 ^ 和 \ 字符
4. [^4-5] 表⽰不匹配 4 到 5 之间的数字包括 4 和 5 也不匹配
5. [^b-d^1-3^5] 表⽰不匹配b c d 1 2 3 5 这⼏个字符
值得⼀提, 中括号中的特殊符号也会认为是字符 ⽐如 <>, (), {} 都会被看作字符的括号⽽⾮特殊含义, ^ - \ 这个三个特殊符号保留特殊含义,想要匹配^ - \ 则使⽤\^, \-, \\
2. ⼤括号{ }, ⽤于重复次数, ⼤括号左边表达式的匹配次数
字符串: hello world!!
js正则表达式: /l{2}/g
匹配到的内容是: he ll o world!!
1. a{1, 4} 匹配 a 字符 1 到 4次 如 a aa aaa aaaa
2. [0-9]{3} 匹配连续 3 个数字
3. [a-z]{1,} 匹配⼩写字母字符 1次到⽆数次
4. [a-z]{,5} 匹配⼩写字母字符 最多5次
3. ⼩括号( ), 表⽰⼀个⼦表达式
字符串: hello world!!
js正则表达式: /(ell)/g
匹配到的内容是: h ell o world!!
此处注意, 如果字符串是helo 则是匹配不到任何内容的
⼩括号中的内容是⼀个完整的正则表达式
1. (ha){2} 匹配 内容为haha
2. ((ha){2} hello) 匹配到的内容为: haha hello
3. (a | b){2} 能够匹配到的内容为 aa bb ab ba
regex匹配⼦表达式可以很复杂, 这样多个⼦表达式组合起来, 可以匹配出规则很复杂的字符串
补充
(?=), (?!), (?<=), (?<!) 这四种写法属于含义⽐较特殊的⼦表达式, 为预查表达式 和 ( ) 的含义有所不同后⾯会再写⼀篇来详细解读预查表达式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论