入门
一、行起始和结束『^』『$』
# ^ 和 $
^cat #匹配c作为一行的第一个字符,紧接着第二个a,第三个t
cat$ #匹配t作为一行的最后一个字符,紧接着第二个a,第三个c
二、字符组『[]』『[^]』
#匹配若干字符之一
r = "apple "
re = re.match('ap[ap]le',r)#匹配apple和apale
print(re.group())
>>>apple
#排除型字符组
[^1-6]#排除1到6以外的任意字符:[]内,^排除;[]外,^开头
#理解为匹配出一个未列出的字符,而不是不要匹配出的字符
三、用点号匹配任意字符『.』
例如我们需要搜索一个“04/11/98”、“04-11-98”、“04.11.98”
可以用到
#不机智的方法
04[-./]11[-./]98
#机智的方法
04.11.98
注意:
在字符组外和内,元字符的定义和意义是不一样的比如那个点号,其中[-./]中的-也不算元字符,因为正确用法不是在 [ 或 [^ 之后而是[.-/]所以不被当做元字符
四、多选结构『|』
字符 | 意思是or
比如apple和apale要查找这两个字符
apple|apale #查找apple or apale
#可以用括号来划定多结构的范围
ap(a|p)le #查找ap(p or a)le
^(From|Date|Sub): #匹配^From:和^Date:和^Sub:
^From|Date|Sub: #匹配^From和Date和Sub:
注意:
一个字符组只能匹配目标文本中单个字符,而每个多选结构自身可能就是完整的正则表达式,都可以匹配任意长度的文本
五、忽略大小写
在egrep中使用-i即可
例子:
egrep -i '^(From|Date|Sub):' filename
六、单词分界符『<』『>』
匹配英语单词
<和>不是元字符,通过转移才有特殊的含义
<单词起始位置
>单词结束位置
未验证成功
七、量词- 可选项元素『?』
?前的容许出现改字符,但是不是必选项
a = apple
b = aple
#要想让两个字符都可以匹配就可以这样写
app?le#匹配『a』『p』『p?』『l』『e』其中『p?』表示这个字符不是匹配成功的必要条件