目录
一、正则元字符1、 字符元字符2、重复元字符(量词)3、定位元字符4、分组和替换字符5、特殊字符6、需要转义的字符7、贪婪与非贪婪匹配8、常见正则表达式二、正则表达式应用举例1、验证表达式vs中批量操作三、文件夹中的文件内容正则批量替换1、使用VSCode文件替换(使用JS引擎)2、文件夹中的文件内容正则批量替换一、正则元字符
是一些在正则表达式中有特殊用途、不代表它本身字符意义的一组字符。
1、>
[…] :匹配列表中的任意字符[^…] :匹配不在列表中的任意字符. :匹配除了回车和换行符之外的任何字符w :元符号,相当于[a-zA-Z0-9_],匹配任何字母、数字、下划线字符,这样的字符也称为单词字符W :元符号,相当于[^a-zA-Z0-9_],匹配除了字母、数字、下划线字符之外的任何字符d :元符号,相当于[0-9],匹配任何单个的数字字符D :元符号,相当于[^0-9],匹配除了数字之外的任何单个字符s :元符号,匹配空白字符,空白字符是指空格、Tab字符和回车换行符S :元字符,匹配任何非空白字符
2、重复元字符(量词)
x? :匹配0个或1个x。x+ :匹配1个或多个x。x* :匹配0个或多个x。x{n} :匹配n个x。x{n,} :匹配n个或多个x。x{n,m} :匹配n到m个x。
3、定位元字符
^ :匹配必须出现在字符串的开头或行的开头(开头)$>b :匹配单词的开始或结束B :匹配非单词的开始或结束x(?=y) :正向肯定预查。只有在x后面跟上y时,才匹配x成功。(正向等=)x(?!y) :正向否定预查。只有在x后面不跟着y时,才匹配x成功。 (正向不等!)(?<=x)y:反向肯定预查。只有在y前面跟x时,才匹配y 成功。Javascript不支持。(反向等,为在正向等前加<)(?<!x)y: 反向否定预查。只有在y前面不跟x时,才匹配y 成功。Javascript不支持。(反向不等,为在正向等前加<)
4、分组和替换字符
x|y :匹配x或y(sub) :反向引用,将子表达式sub作为一个整体处理,括号的作用相当于代数中括号的作用。并将捕获的子匹配保存在1,2,......和$1,$2,......中。例如:/a(bc)+/中,加号元字符作用在子表达式bc上,它匹配abc、abcbc,但是不匹配a和ac(?:sub) :分组子模式,但是不捕获子模式。它的作用与(sub)类似,称为无记忆匹配1,2,3,... :在正则表达式中,分别包含与正则表达式中第一个反向引用、第二个反向引用、第三个反向引用...相匹配的子串$1,$2,$3,... :在替换中,分别包含与正则表达式中第一个反向引用、第二个反向引用。第三个反向引用...相匹配的子串
5、特殊字符
特殊字符是指那些不容易进行直接书面表达或不容易直接使用键盘输入的字符。
2、重复元字符(量词)
- x? :匹配0个或1个x。x+ :匹配1个或多个x。x* :匹配0个或多个x。x{n} :匹配n个x。x{n,} :匹配n个或多个x。x{n,m} :匹配n到m个x。
3、定位元字符
- ^ :匹配必须出现在字符串的开头或行的开头(开头)$>b :匹配单词的开始或结束B :匹配非单词的开始或结束x(?=y) :正向肯定预查。只有在x后面跟上y时,才匹配x成功。(正向等=)x(?!y) :正向否定预查。只有在x后面不跟着y时,才匹配x成功。 (正向不等!)(?<=x)y:反向肯定预查。只有在y前面跟x时,才匹配y 成功。Javascript不支持。(反向等,为在正向等前加<)(?<!x)y: 反向否定预查。只有在y前面不跟x时,才匹配y 成功。Javascript不支持。(反向不等,为在正向等前加<)
4、分组和替换字符
- x|y :匹配x或y(sub) :反向引用,将子表达式sub作为一个整体处理,括号的作用相当于代数中括号的作用。并将捕获的子匹配保存在1,2,......和$1,$2,......中。例如:
/a(bc)+/中,加号元字符作用在子表达式bc上,它匹配abc、abcbc,但是不匹配a和ac(?:sub) :分组子模式,但是不捕获子模式。它的作用与(sub)类似,称为无记忆匹配1,2,3,... :在正则表达式中,分别包含与正则表达式中第一个反向引用、第二个反向引用、第三个反向引用...相匹配的子串$1,$2,$3,... :在替换中,分别包含与正则表达式中第一个反向引用、第二个反向引用。第三个反向引用...相匹配的子串
5、特殊字符
特殊字符是指那些不容易进行直接书面表达或不容易直接使用键盘输入的字符。
