一、正则表达式是什么?
正则表达式是由普通字符与元字符组成的文字模式。模式用于描述在搜索文本时要匹
配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进
行匹配。其中普通字符包括大小写字母、数字、标点符号及一些其他符号,元字符则是指
那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符
前面的字符)在目标对象中的出现模式
正则表达式一般用于脚本编程与文本编辑器中。很多文本处理器与程序设计语言均支持
正则表达式,例如 Linux 系统中常见的文本处理器(grep、egrep、sed、awk)以及应用比
较广泛的 Python 语言。
二、正则表达式分类
1.基础正则表达式
正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展
正则表达式。基础正则表达式是常用正则表达式最基础的部分。在 Linux 系统中常见的文件
处理工具中 grep 与 sed 支持基础正则表达式,而 egrep 与 awk 支持扩展正则表达式。
基础正则表达式的元字符主要包括以下几个
^ 以某个字符开头,匹配输入字符串的开始位置。
$以某个字符结尾, 匹配输入字符串的结尾位置。
.匹配任意单字符
* 对前一项进行0次或者多次重复匹配。
[] 对方括号内的单字符进行匹配。
[^] 不匹配方括号内的单字符。
^[]匹配以某个字符开头的行
\b \<或\b:锚定词首(支持vi和grep)其后面的任意字符必须作为单词首部出现\>或\b:锚定词尾
\s 空白字符 \S非空白字符
\w单个字符 \W非单个字符
\d单个数字 \D非数字
2.扩展正则表达式
扩展正则表达式支持比基本正则表达式更多的元字符,但是扩展正则表达式对有些基本正则表达式所支持的元字符并不支持
+ 作用:匹配前一个最少匹配一次 1-任意次
? 作用:匹配前一个最多匹配1次 0次或者一次
() \1 \2 \1匹配第一个字符串 \2匹配第二个字符串
| 作用:使用或者(or)的方式找出多个字符
{n,m} 最少匹配 n 次且最多匹配 m 次
区别与联系:
(1)扩展正则表达式的表示字符范围比基础正则表达式多。
(2)扩展正则表达式中的元字符在转义字符""处理下会被当做普通元字符。
(2)使用扩展正则表达式可以更大范围满足匹配关系,使表达式表现形式更简洁。
(3)指令操作时表现形式略有不同。