正则表达式点滴
1.元字符
元字符 |
名称 |
匹配对象 |
. |
点号 |
单个任意字符 |
[…] |
字符组 |
列出的任意字符 |
[^…] |
排除型字符组 |
未列出的任意字符 |
^ |
脱字符 |
行的起始位置 |
$ |
美元符 |
行的结束位置 |
\< |
反斜线-小于 |
单词的起始位置* |
\> |
反斜线-大于 |
单词的结束位置 * |
| |
竖线 |
匹配分隔两边的任意一个表达式 |
(…) |
括号 |
限制竖线的作用范围 |
2."表示重复的元字符"
次数下限 |
次数上限 |
含义 |
|
? |
无 |
1 |
可以不出现,也可以只出现一次(单次可选) |
* |
无 |
无 |
可以出现无数次,也可以不出现(任意次数均可) |
+ |
1 |
无 |
可以出现无数次,但至少要出现一次(至少一次) |
3.egrep的元字符总结*
匹配单个字符的元字符 |
|||
元字符 |
匹配对象 |
||
. |
点号 |
匹配单个任意字符 |
|
[…] |
字符组 |
匹配单个列出的字符 |
|
[^…] |
排除型字符组 |
匹配单个未列出的字符 |
|
\char |
转义字符 |
若\char是元字符,或转义序列无特殊含义时,匹配char对应的普通字符 |
|
提供计数功能的元字符 |
|||
? |
问号 |
容许匹配一次,但非必须 |
|
* |
星号 |
可以匹配任意多次,也可以不匹配 |
|
+ |
加号 |
至少需要匹配一次,至多可以任意多次 |
|
[min,max] |
区间量词* |
至少需要min次,至多容许max次 |
|
匹配位置的元字符 |
|||
^ |
脱字符 |
匹配一行的开头位置 |
|
$ |
美元符 |
匹配一行的结束位置 |
|
\< |
单词分界符* |
匹配单词的开始位置 |
|
\> |
单词分界符* |
匹配单词的结束位置 |
|
其他元字符 |
|||
| |
alternation |
匹配任意分隔符的表达式 |
|
(…) |
括号 |
限定多选结构的范围,标注量词作用的元素,为反向引用"捕获"文本 |
|
\1,\2,… |
反向引用* |
匹配之前的第一、第二组括号内的字表达式匹配的文本 |
4.简记法
\t |
制表符 |
\n |
换行符 |
\r |
回车符 |
\s |
任何"空白"字符(例如空格符、制表符、进纸等等) |
\S |
除\s之外的任何字符 |
\w |
[a-zA-Z0-9] |
\W |
除\w之外的任何字符,即[^a-zA-Z0-9] |
\d |
[0-9],即数字 |
\D |
除\d之外的任何字符,即[^0-9] |
PS.有些带*的表示某些版本的egrep不支持