正则表达式
2018-04-09 本文已影响0人
断点看回忆
字符类:是一个括在括号中的可选择的字符集,例如[Jj]、[0-9]、[A~Za-z]或[0-9]。这里“-”表示的是一个范围,而“”表示补集-
如果字符类中包含“-”,那么它必须是第一项或最后一项;如果要包含“[”,那么它必须是第一项;如果要包含“^”,那么它可以是除开始位置之外的任何位置。日中你只需要转义“[”和“\”
预定义字符类
image.png
注:
1、大部分字符都可以与它们自身匹配
2、“.”符号可以匹配任何字符(不包含行终终止)
3、使用\作为转义字符,例如,. 匹配句号\匹配反斜杠
4、^和$分别匹配一行的开头和结尾
5、如果X和Y是正则表达式,那么XY表示“任何X的匹配后面跟随Y的匹配”,“X|Y”表示“任何X或Y的匹配”。
6、可以将量词运用到表达式X:X+(1个或多个)、X(0或多个)、X?(0个或1个)
7、默认情况下,量词要匹配能够使整个匹配成功的最大可能重复次数。你可以修改这种行为,方法是使用后缀?(使用勉强或吝啬匹配,也就是最小的重复次数)或使用后缀+(使用占有或贪婪匹配,就是即使让整个匹配失败,也要匹配最大的重复次数)。例如字符串cab的匹配[a-z]ab,但不匹配[a-z]+ab,在第一种情况中,表达式[a-z]ab只匹配字符c,似的字符ab匹配该模式的剩余部分;但是贪婪匹配版本[a-z]*ab将匹配cab,模式的剩余部分将无法匹配。
8、我们使用群组来定义表达式,其中群组用()括起来,例如,([+-]?)([0-9]+)。干后你可以询问模式匹配起,让其返回每个组的匹配,或者用\n来引用某个群组,其中n是群组好(从\1开始)