正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,常被用来检索、替换那些符合某个模式(规则)的文本。
入门
输入code即可匹配所有包含code的字符串
字符串[ ]
允许匹配其内任一字符,例: [Ab3] 允许匹配 A 或 b 或 3
连字符-
代表区间,例:[0-9]允许匹配任何数字、[a-zA-Z]允许匹配任何小写或大写字母
转义符\
用于匹配 [、] 、- 、(、) 等特殊字符
取反符^
用于匹配不符合字符组描述的数据,例:[^0-9]允许匹配任何非数字字符;[^a]匹配任何不是a的字符
取或符|
用于匹配符合其左边、右边任一条件的字符(串)
快捷方式
\w
允许匹配任意字母、数字、下划线
\d
允许匹配任意数字
\s
允许匹配空格、tab、换行
\b
允许匹配单词、数字边界,例:\blow\b 匹配 low-er、low.er,不匹配单词 lower;\b\d\b匹配1、2,不匹配12
快捷方式取反大写即可,例:\D匹配所有非数字字符、\W匹配所有特殊字符
^
指定的是一个字符串的开始,例:^a匹配所有以a开头的字符串
$
指定的是一个字符串的结束,例:a$匹配所有以a结束的字符串
.
允许匹配除换行符外的任意字符,且只能在 [ ]以外使用
?
表示前边字符、字符组或其他基本单元可出现或不出现,例:[a-z]?1匹配小写字母+1或单独一个1;.?匹配任意字符
匹配多个数据
{N}
连续匹配N次,例:code{N}匹配连续出现N次code的字符串
{M,N}
连续匹配M~N次,优先匹配连续出现N次的(贪婪)
{M,N}?
连续匹配M~N次,优先匹配连续出现M次的(懒惰)
{M,}
连续匹配大于等于M次
+
连续匹配大于等于1次,相当于{1,},例:f.+匹配以f开头的字符串
+?
连续匹配大于等于1次,优先匹配出现次数少的(懒惰)
\*
连续匹配大于等于0次,相当于{0,},例:^http.*/$匹配以http开头且以/结尾的任意字符串
?
连续匹配大于等于0次,优先匹配出现次数少的(懒惰)
()
括号内为子表达式,视为匹配的基本单元