基础正则表达式元字符有哪些,怎么应用

Admin 2022-07-30 群英技术资讯 567 次浏览

在这篇文章中,我们来学习一下“基础正则表达式元字符有哪些,怎么应用”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。


POSIX规范制订了两种标准的正则表达式语法,一种是基本正则表达式,一种扩展正则表达式。这两中正则表达式的元字符组成略有不同。本节来学习基础正则表达式元字符。

基础正则表达式元字符

(1)限定符“*”

符号“*”用于匹配前导字符0次或多次,具体示例如下:

hel*o

以上示例中“*”符号之前是普通字符l,“*”符号就表示匹配l字符0次或多次,字符串helo、hello、hellllllo都可以与hel*o匹配。

(2)点字符“.”

符号“.”用来匹配任意除换行符“\n”外任意的单个字符。当正则表达式中出现“.”符号时,意味着该位置应有一个字符,具体示例如下:

..U73.

“.”只能匹配一个字符,因此上述字符串表示前两个字符是任意字符,第3~5个字符是U73,最后一个字符也是任意字符。字符串MHU73、4JU73H等都可与..U73.匹配。

(3)行首定位符“^”

符号“^”用来匹配行首字符,表示行首字符是“^”后面那个字符。例如列举出/etc目录下以字符串“sys”开头的文件,可以使用如下命令:

[itheima@localhost ~]$ ls /etc | grep "^sys"
sysconfig
sysctl.conf
sysctl.d
systemd
system-release
system-release-cpe

注意:

尽管以上示例匹配的是以字符串“sys”开头的内容,但读者应理解为匹配以字符“s”开头,第二、第三个字符依次为“y”和“s”的行,这种理解方式更符合正则表达式的思维,。这种思维在学习正则表达式时非常重要,读者应熟练掌握。

(4)行尾定位符“$”

行尾定位符“$”用来匹配文本行末尾的字符,与“^”符号的作用正相反。例如查找/etc目录下以conf结尾的文件,可以使用如下命令。

[itheima@localhost ~]$ ls /etc | grep cof$
asound.conf
autofs.conf
autofs_ldap_auth.conf
brltty.conf
cgconfig.conf
cgrules.conf
cgsnapshot_blacklist.conf
......

同样,读者在理解行尾定位符的时候也应该从字符的角度去理解,即“conf$”匹配的是以“conf”以字符“f”结尾,同时倒数第2~4个字符依次为“n”、“o”、“c”的文本行。

(5)字符组“[]”

“[]”符号的功能比较特殊,它是用来指定一个字符集合的,其基本语法如下:

[abc]

其中a、b和c表示任意单个字符,只要某个字符串在方括号所在的位置出现了方括号中的任意一个字符,就能满足匹配规则。

另外,对于连续的数字或字母可以使用符号“-”来表示一个范围,例如[a-z],表示匹配到a到z中的任意一个字母。下面通过查看/etc目录下以rc开头,并且rc后面紧跟一个数字的文件有哪些来演示“[]”符号的使用,查看的命令具体如下所示:

[itheima@localhost ~]$ls /etc | grep "^rc[0-9]" 
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d

由输出结果可知,符合规则的文件一共有7个。

注意:元字符“*”或“.”位于“[]”符号之中,便仅表示一个普通的字符,不再具有特殊意义。

(6)排除型字符组“[^]”

“[^]”表示不匹配其中列出的任意字符,其语法格式如下所示。

[^abc]

它的用法与“[]”符号相反,此处不再赘述。


以上就是关于“基础正则表达式元字符有哪些,怎么应用”的介绍了,感谢各位的阅读,如果大家想要了解更多相关的内容,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
群英智防CDN,智能加速解决方案
标签: 元字符

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服