以下笔记来自于《The awk programming language》里《正则表达式》一节。
1.正则表达式的元字符(metacharacters
):
\
,^
,$
,.
,[
,]
,|
,{
,}
,*
,+
,?
。
2.基本的正则表达式形式:
a)普通字符(非元字符),像A
,就匹配A
自己;
b)转义序列(Escape Sequences
):\b
,\f
,\n
,\r
,\t
,\ddd
和\c
(\c
表示保留任意字符的字面含义,如\"
表示"
)。
c)取消特殊含义的元字符,像\*
,仅表示*
本身;
d)^
:匹配字符串的开头;
e)$
:匹配字符串的结尾;
f).
:匹配单个字符;
g)character class
:[...]
;complemented character class
:[^...]
。举个例子,[ABC]
匹配A
,B
和C
中的任意一个字符,而[^0-9]
匹配任意一个不是数字的字符。在[...]
和[^...]
中,除了\
,紧随着[
出现的^
,和在两个字符直间的-
这3
个字符外,其它字符不再具有特殊含义。如[.]
则仅匹配一个.
。
3.运算符:
a)|
:A|B
表示匹配A
或者B
;
b)连接:AB
表示匹配A
后面紧跟着B
;
c)A*
:匹配0
个或多个A
;
d)A+
:匹配1
个或多个A
;
e)A?
:匹配0
个或1
个A
;
f)(r)
:()
仅仅是把正则表达式扩起来。