正则表达式

正则表达式是定义的模式模板(pattern template),即用一组符号来描述具有共同属性的数据,Linux工具(grep、sed、awk)可以利用它来过滤文本。

正则表达式模式利用通配符来描述数据流中的一个或多个字符。

正则表达式使用过正则表达式引擎实现的,正则表达式引擎是一套底层软件,负责解释正则表达式模式并使用这些模式进行文本匹配。

在 Linux 中有两种流行的正则表达式引擎

1. POSIX 基础正则表达式引擎 (basic regular expression, BRE)

2. POSIX 扩展正则表达式引擎 (extended regular expression, ERE)

 

正则表达式区分大小写

\b  单词边界  \broot\b  匹配 root  单词

\<  单词开头  \<th  匹配以 th 开头的单词

\>  单词结尾  \>er  匹配以 er 结尾的单词

^  行首锚定符

$  行尾锚定符

.  用来匹配除换行符(\n)之外的任意单个字符

*  字符后面放置,表明其前面的字符必须在匹配模式的文本中出现任意次数,0次或多次 。在 Linux 中,代表零个或多个字符

?  字符后面放置,表明其前面的字符必须在匹配模式的文本中出现至多1次,0次或1次。在 Linux 中,代表一个字符

+  字符后面放置,表明其前面的字符必须在匹配模式的文本中出现至少1次,1次或多次

{m}  表明前面的正则表达式准确出现 m 次

{m,n}  表明前面的正则表达式至少出现 m 次,至多出现 n 次

[]  用来定义一个字符组,方括号中包含所有希望出现在该字符组中的单个字符

[ - ]  区间字符组

[^]  排除型字符组

|  逻辑或

()  对表达式进行分组

 

posted on 2018-11-27 11:01  0820LL  阅读(118)  评论(0编辑  收藏  举报

导航