元字符是一些在正则表达式中有特殊用途、不代表它本身字符意义的一组字符。 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、定位元字符^ 匹配必须出现在字符串的开头或行的开头(开头) $ 匹配必须出现在以下位置:字符串结尾、字符串结尾处的 \n 之前或行的结尾。(结尾) \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、特殊字符特殊字符是指那些不容易进行直接书面表达或不容易直接使用键盘输入的字符。 \0 匹配null字符,对应的十六进制值为\x00 \b 匹配退格字符,对应的十六进制值为\x08 \n 匹配换行字符,对应的十六进制值为\x0A \r 匹配回车字符,对应的十六进制值为\x0D \f 匹配换页字符,对应的十六进制值为\x0C \t 匹配制表(TAB)字符,同时对应于水平制表符\x09和垂直制表符\x0B \xhh 匹配用2个十六进制数字表示的字符 \uhhhh 匹配用4个十六进制在数字表示的字符,这些字符是Unicode字符 \cchar 匹配命名的控制字符
6、需要转义的字符. * + ( ) $ / \ ? [ ] ^ { } - ! < >
6、常见正则表达式[\u4e00-\u9fa5] 匹配任意一个汉字 [1-9]?[0-9]|100 匹配0-100的数字 \n[\s| ]*\r 匹配空行的正则表达式
|