正则表达式
一、正则表达式是什么?
正则表达式是由普通字符与元字符组成的文字模式。模式用于描述在搜索文本时要匹
配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进
行匹配。其中普通字符包括大小写字母、数字、标点符号及一些其他符号,元字符则是指
那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符
前面的字符)在目标对象中的出现模式
正则表达式一般用于脚本编程与文本编辑器中。很多文本处理器与程序设计语言均支持
正则表达式,例如 Linux 系统中常见的文本处理器(grep、egrep、sed、awk)以及应用比
较广泛的 Python 语言。正则表达式具备很强大的文本匹配功能。
二、正则表达式分类
1.基础正则表达式
正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展
正则表达式。基础正则表达式是常用正则表达式最基础的部分。在 Linux 系统中常见的文件
处理工具中 grep 与 sed 支持基础正则表达式,而 egrep 与 awk 支持扩展正则表达式。
基础正则表达式的元字符主要包括以下几个
^ 匹配输入字符串的开始位置。除非在方括号表达式中使用,表示不包含该字符集合。要匹配“^” 字符本身,请使用“^”
$ 匹配输入字符串的结尾位置。 要匹配“”字符本身,请使用“$”
. 匹配除“\r\n”之外的任何单个字符
\反斜杠,又叫转义字符,去除其后紧跟的元字符或通配符的特殊意义
* 匹配前面的子表达式零次或多次。要匹配“*”字符,请使用“*”
[] 字符集合。匹配所包含的任意一个字符。
[^] 赋值字符集合。匹配未包含的一个任意字符。
[n1-n2] 字符范围。匹配指定范围内的任意一个字符。
2.扩展正则表达式
扩展正则表达式支持比基本正则表达式更多的元字符,但是扩展正则表达式对有些基本正则表达式所支持的元字符并不支持
+ 作用:重复一个或者一个以上的前一个字符
? 作用:零个或者一个的前一个字符
| 作用:使用或者(or)的方式找出多个字符
() 作用:查找“组”字符串
()+ 作用:辨别多个重复的组
{n} n 是一个非负整数,匹配确定的 n 次。
{n,} n 是一个非负整数,至少匹配 n 次。
{n,m} m 和 n 均为非负整数,其中 n<=m,最少匹配 n 次且最多匹配 m 次
区别与联系:
(1)扩展正则表达式的表示字符范围比基础正则表达式多。如+、?、|、()等。
(2)扩展正则表达式中的元字符在转义字符""处理下会被当做普通元字符。
(2)使用扩展正则表达式可以更大范围满足匹配关系,使表达式表现形式更简洁。如使用“|”或完成同时匹配。
(3)指令操作时表现形式略有不同。Linux部分指令有支持参数,可以简化书写。如sed -r、grep -E参数表示支持扩展正则表达式。下文会介绍带支持扩展正则表达式参与与不带支持参数的指令书写上的区别。
原文地址:https://blog.csdn.net/m0_73968832/article/details/144003102
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!