正则表达式基础

🔺行的起始位置和结束位置^和$

🔺字符组:[esd]
匹配若干字符之一。
字符组[ea]表示匹配e或a
字符组内部(不在边界)
连字符“ -”属于元字符,
问号,点号不是元字符(字符组外是元字符)
🔺排除型字符组 [^...]

[^1-6] 匹配除了1到6以外的任何字符
脱字符在字符组内部且是 [ 之后
是元字符,排除之意。必须匹配一个字符 注意行尾细节
🔺点号匹配任意字符:. 在字符组中不是元字符
🔺多选结构 |

gr[ae]y 等于 grey|gray 等于gr(a|e)y

在字符组中不是元字符。可以匹配任意长度的文本。字符组只能匹配单个字符
匹配任意子表达式 “|”
🔺忽略大小写 -i
-i 该功能并不是正则表达式的一部分,把-i写在正则表达式之前。
🔺单词分界符 \< 和 \>
\< 和 \> 相当于^ 和 &,不对应任何字符,只是匹配位置。
有的egrep版本不支持 “元字符序列”


🔺可选项元素
?加在一个字符后面,就表示此字符容许出现,只作用于之前紧邻的元素(子表达式)。
🔺其他量词:重复出现
?+ *问号,加号,星号这三个元字符,统称为量词,因为他们限定了所作用元素的匹配次数。
+ 前边紧邻的元素出现一次或多次(可理解为正数,不能是0 0不是正数)
* 前边紧邻的元素出现任意多次,或不出现。

?和*永远不会匹配失败。
+无法匹配时会失败。
🔺阅读正则表达式时,空格符也是普通字符之一。
🔺规定重复出现次数的范围:区间 {1,5}
🔺括号及反向引用:
\1,\2,\3分别表示第一、第二、第三组括号匹配的文本。
🔺转义字符 \ 加 元字符,元字符变为普通字符。
大多数程序设计语言和工具都支持字符组内部的转义,但是大多数egrep版本不支持。
🔺子表达式(subexpression)
通常是括号内的表达式,或者是由「|」分隔的多选分支。
括号限制多选结构(不能超过括号的界限)

🔺括号:限制多选结构,分组和捕获文本。
schafkopf纸牌游戏。
真正的乐趣并不会在第一次体会到,学习的曲线很陡峭。

 

🔺非捕获型括号(?:……)

表示之分组,不捕获,即\1,\2,\3不捕获 这种。
🔺用\s匹配所有“空白” 注意s是小写的。
表示所有空白字符:空格符,制表符,换行符,回车符。
\s,与\S “空白”字符(空格符,制表符,进纸符)\S匹配除\s之外的任何字符
\w与\W [a-zA-Z0-9] \W匹配除\w之外的任何字符即[^a-zA-Z0-9]
\d与\D [0-9] 匹配数字,\D匹配非数字即[^0-9]
大小写相反的关系。

🔺环视结构:肯定和否定。

 

 

 

posted @ 2019-02-19 10:15  好Wu赖  阅读(156)  评论(0编辑  收藏  举报