8个常用正则表达式:https://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know--net-6149
正则表达式30分钟入门:http://deerchao.net/tutorials/regex/regex.htm
普通字符
字母、数字、汉字、下划线以及没有特殊定义的标点符号都是普通字符。
表达式“c”,在匹配字符串“abcde”是,匹配成功,range=(2,1)
转义字符
数显不便的字符以及正则表达式中有特殊用途的字符,需要加转义字符:\r \n \ \^ \$ . 等
表达式"\$d",在匹配字符串"abc$de",匹配结果成功,range=(3,2)
能够与多种字符匹配的表达式
- \d:0-9任意一个数字
- \D:所有非数字字符
- \w:任意一个字母、数字或下划线,A~Z、a~z、0-9
- \W:所有字母、数字、下划线以外的字符
- \s:空格、制表符、换页符等空白字符
- \S:所有非空白字符
- . : 小数点可以匹配除换行符(\n)以外的任意一个字符
表达式"\d\d" ,可以匹配任意两位数字表达式"a.\d",可以匹配"a 任意字符 数字",字符串"aaa100",匹配结果是"aa1"
自定义能够匹配多种字符的表达式
中括号[]包含一系列字符,能够匹配其中任意一个字符。
- [ab5@]:匹配"a"或"b"或"5"或"@"
- [^abc]:匹配除"a","b","c"之外的任意的字符
修饰匹配次数的特殊符号
次数修饰放在被修饰的表达式后边。
- {n}:表达式重复n次。\w{2}相当于"\w\w";a{5}相当于"aaaaa"
- {m,n}:表达式最少重复m次,最多重复n次。ba{1,3}相当于ba 或 baa 或 baaa
- {m,}:表达式最少重复m次。\w\d{2,}可以匹配a12 M123 _33333
- ?:匹配表达式0次或1次,相当于{0,1},a[cd]?可以匹配 ac ad a
- +:表达式最少出现1次,相当于{1,},a+b可以匹配ab aab aaab
- *:表达式不出现或出现任意次,相当于{0,},比如 "\^**b"可以匹配b ^b ^^b
代表抽象意义的特殊符号
- ^:与字符串开始的地方匹配,不匹配任何字符,^aaa在匹配"xxx aaa xxx"时,匹配失败,因为 ^ 要求与字符串开始的地方匹配,只有aaa位于字符串开头的时候,才能匹配成功;
- $:与字符串结束的地方匹配,不匹配任何字符,aaa$在匹配"xxx aaa xxx"时匹配失败,因为$要求与字符串结束的地方匹配,只有aaa位于字符串结尾的时候,才能匹配成功;
- \b:匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符,\babc表示abc前面
- \B:匹配非单词边界
- | :左右两边表达式“或”关系,匹配左边或右边,表达式“tom|jack” 匹配字符串 "I'm Tom, he is Jack" 时匹配成功;
- ():将括号中的内容作为一个整体取匹配,(go\s*)+ 匹配字符串Let`s go go go! 时,匹配成功
其他语法
正向、反向预搜索
- (?=xxxxx):在被匹配的字符串中,对所处的缝隙或两头附加的添加是:所在缝隙的右侧,必须能够匹配上xxxxx这部分的表达式。
表示字符
"\xXX" 和 "\uXXXX" 表示一个字符("X" 表示一个十六进制数)
在表达式中有特殊意义,需要添加 "" 才能匹配该字符本身的字符汇总
^:匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "\^"$:匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "\$"( ):标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)"{ }:修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}".:匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 "\."?:修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "\?"+:修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "\+"*:修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "\*"|:左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|"