学习材料:
笔记内容:
. --- 匹配任意一个字符
使用反斜杠“\”可以忽略元字符,例如“\.”表示内容为“.”的字符串
字符类是一组在方括号内的字符,表示可以匹配其中的任何一个字符,例如c[abcde]t,可以匹配cat,cbt,cct,cdt,cet。
[.]表示匹配一个全角句号。[?+*]表示一个?,或者一个+或者一个*。
c[abcde]t可以用c[a-e]t表示。
[1-31]和[1-3]同义。
^表示反义符,例如[^a]表示匹配任何不适“a”的字符。
\d和[0-9]同义。\D和[^0-9]同义。
\w和[0-9A-Za-z]同义。\W...
\s匹配一个空字符(空格,制表符,换行符)。\S...
在字符或字符集之后,可以用大括号{}表示重复几次。例如a{3}匹配“aaa”。在字符类中大括号没有特殊含义,[{}]表示匹配一个左大括号或一个右大括号。
指定重复次数范围,例如a[3,5]表示“aaaaa”或“aaaa”或“aaa”。
优先匹配最长字符串。例如匹配i had an aaaaawful day,会匹配aaaaa而不是aaa。例如匹配i had an aaawful daaaaay,第一次匹配会匹配aaa,因为aaa在前面,第二次匹配才会匹配到aaaaa。
重复次数范围可以是开区间,例如a{1,}表示匹配一个或一个以上连续的字符a。
?和{0,1}相同,例如colou?r表示colour或color。
*与{0,}相同。
+与{1,}相同。
非贪婪匹配,在句尾加一个问号。例如“.*”和“.*?”,前者为最长匹配,后者则取最短匹配,即中间的内容不再有双引号。
选择匹配,|,例如cat|dog表示匹配cat或者dog。
\b表示匹配一个单词分隔符。
^表示匹配行的开始位置,$表示匹配行的结束位置。^&表示一个空行,^.*$表示匹配全文内容,^.*?$表示匹配一行。