正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
元字符
-
^:匹配输入字符串的开始位置。
-
&:匹配输入字符串的结束位置。
-
*:等价于{0,},匹配前面的子表达式零次或多次。
ed*可以匹配funish,可以匹配funished,可以匹配exceeded。
-
+:等价于{1,},匹配前面的子表达式一次或多次。
ed+不可以匹配funish,可以匹配funished,可以匹配exceeded。
- ?:等价于{0,1}
- {n}:匹配确定的n次。
e{2}能匹配esteem中的ee,但不能匹配bed的e。
- {n,}:至少匹配n次。
- {m,n}:最少匹配m次,最多匹配n次。
- x|y: 匹配x或y。
- \b:匹配单词边界。
or可以匹配actor,不能匹配tore。
- \B:匹配非单词边界。
待续。。。
字符组[]
- 一般
[a12%]表示匹配括号里的任意一个字符。注意是一个呦!
[^a12%]表示匹配除括号内的字符以外的任意一个字符。
[1-9]表示匹配从1到9的任意一个字符。
[abc-^]需要匹配 - 和 ^ 本身,用 \ 转义。 - 常和元字符 + 或 {m,n}一起使用:
[a-z]{1,4}表示连续出现1到4个字符 。
捕获组()
把一个子正则表达式匹配到的内容按照一定编号保存到内存中,以备后续获取这些内容。
两种形式:普通捕获组(expression) 和 命名捕获组(?expression)
贪婪模式和非贪婪模式
贪婪模式:尽可能多的匹配内容。
非贪婪模式:尽可能少的匹配内容。在普通量词后面加"?"
待续。。