一、限定符
在线测试工具
regex101
1、限定符 ?
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
cap?
表示p可以出现0次或者1次
2、限定符*
匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
3、限定符+
匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
精确匹配
{n} :前面的子表达式出现的次数为n
{m,n} :前面的子表达式出现的次数可以是m~n次
4、表达式匹配()
标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
(ab)?c
子串ab出现0到1次
二、运算符
1、|或运算符
指明两项之间的一个选择。要匹配 |,请使用 |。
3、字符类[]
方括号表示比配的字符只能出自方括号内的字符,并指定字符的范围
[a-zA-Z]
匹配所有的大小写字母,
4、^取反字符
表示不接受该方括号表达式中的字符集合。
注意:
匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 ^。
[^a-zA-z]
^1
以1开头的字符
三、元字符
以\斜杠开头
\d :数字字符0-9
\w :代表单词字符(英文、数字、下划线),
\s 代表空白符(包含Tab和换行符)
\D 非数字字符
\W 非单词字符
\S 非空白字符
. 句点表示任意字符,但不包含换行符
^ 匹配行首
$ 匹配行尾
\b 匹配一个单词边界,即字与空格间的位置。
四、贪婪与懒惰匹配
?:将正则表达式的默认的贪婪匹配切换为懒惰匹配
五、练习
1、ip地址
\b((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b