1、直接匹配字符
直接匹配普通的字符,可以是中文
例:
ABC 相当于:A{1}B{1}C{1}
哈 相当于:哈{1}
哈|呵 相对于:哈{1}|呵{1},匹配一个字符,可以是哈或者呵
2、匹配多次
例:
哈{n} 必须匹配"哈"n次
哈{1,5} 最少匹配"哈"1次,最多5次
3、匹配多个字符
例:
[0-9] 匹配一个字符,字符可以是0~9
[a-zA-Z]{2} 匹配2个字符,字符可以是任何字母
4、起始匹配断言:^
以^开头的正则表达式必须从开头匹配
例:
字符串:qwertyuiop
以[a-zA-Z]{2}匹配会匹配整个字符串(因为这个字符串任何两个相邻的字符都符合这个正则表达式)
以^[a-zA-Z]{2}匹配则匹配开头的qw
5、结尾匹配断言:$
以$结尾的正则表达式必须从结尾匹配
例:
字符串:qwertyuiop
以[a-zA-Z]{2}$匹配则匹配结尾的op
6、同时使用^和$
同时使用两者是从开头和结尾都要同时匹配
例:
^[a-zA-Z]{2}$ 匹配的内容必须是2个字符的字母
7、用特殊符号代替常见的组合
例:
[0-9] 用\d代替(数字)
{0,1} 用?代替
要匹配0~99的数:^[0-9]{1,2}$(或^[0-9][0-9]{0,1}$)就可以写成:^\d{1,2}$(或^\d\d?$)
其他:
\f 换页
\n 换行
\r 回车
\t 制表符
\xhhhh 一个16进制数
. 一个任意字符
\D 一个非数字
\s 一个空白符(包括\n、\f、\t、\r、""等)
\S 一个非空白符
\w 一个单词字符(即:[A-Za-z0-9_])
\W 一个非单词字符
8、特殊符号^
^除了上面说的放在开头表示从开头匹配还可以放在方括号里表示相反的意思
例:
匹配abc中任何一个:[a-c](或[abc])
匹配一个字符但abc除外:[^a-c](或[^abc])
9、量词代替
? 0次或1次,即:{0,1}
+ 1次或多次,即:{1,} 注意:这里要是设置setMinimal(false);设置非贪婪匹配,匹配到1次就停下
* 0次或多次,即:{0,}
{n,} 最少n次
{,n} 最多n次,即:{0,n}
10、其他断言
\b 单词边界
\B 非单词边界
(?=E) 表达式后面跟E才匹配,这里的?不再表示0次或1次
例:
啊啊啊啊呵呵啊啊啊啊嘿嘿嘿 表达式:啊(?=嘿) 当"啊"后面跟着"嘿"才匹配,匹配结果是"嘿"前面的"啊"
(?!E) 表达式后面没有跟着E才匹配
一个正则表达式匹配的工具代码:RegExp.zip-C++文档类资源-CSDN下载