什么是正则表达式
正则表达式是一种描述一组字符串的模式,为处理大量文本、字符串而定义的一套规则和方法,以行为单位进行处理。正则表达式分为两类:基本正则表达式(BRE)和扩展正则表达式(ERE)。在linux中使用正则表达式较多的有三个工具,分别为grep,sed和awk,这三个工具被称为linux文本处理的三剑客。
基本正则表达式
字符匹配:
.:匹配任意单个字符
[ ]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
几种特殊表示:
匹配次数:
*:匹配其前面的字符任意次(0次、1次或多次)
.*:匹配任意长度的任意字符
\?:匹配起前面字符0次或1次
\+:匹配其前面字符1次或多次
\:匹配其前面的字符m次
\:匹配其前面字符最少m次,最多n次
\:匹配其前面字符最少m次
\{,n\}:匹配其前面字符最多n次
位置锚定:
^:行首锚定
$:行尾锚定
^$:匹配空白行
\
\>或\b:词尾锚定
\
:匹配完整的单词
分组及引用:
\(\):将多个字符捆绑在一起,当做一个整体处理
分组括号匹配到的内容,会被正则表达式引擎自动记录到内部变量中,变量为
\1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符
\2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符
扩展正则表达式
字符匹配:
.:匹配任意单个字符
[ ]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
次数匹配:
*:匹配其前面的字符任意次(0次、1次或多次)
?:匹配起前面字符0次或1次
+:匹配其前面字符1次或多次
:匹配其前面的字符m次
:匹配其前面字符最少m次,最多n次
:匹配其前面字符最少m次
{,n}:匹配其前面字符最多n次
位置锚定:
^:行首锚定
$:行尾锚定
\
\>或\b:词尾锚定
分组及引用:
():分组;括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中,变量为\1,\2等
或:
|:a|b表示a或者b
比较基本正则表达式和扩展正则表达式发现,基本正则表达式的很多符号需要转义“\”,而扩展正则表达式不需要
领取专属 10元无门槛券
私享最新 技术干货