当前位置: 首页>前端>正文

课时103:正则表达式_基础实践_分组符号

3.1.4 分组符号

学习目标

这一节,我们从 基础知识、简单实践、小结 三个方面来学习

基础知识

简介

当我们使用正则模式匹配到的内容有很多项的时候,默认会全部输出。如果我们仅仅需要特定顺序的一个匹配内容的话,就用到我们这一节的知识点 -- 分组。
所谓的分组,其实指的是将我们正则匹配到的内容放到一个()里面
    - 每一个匹配的内容都会在一个独立的()范围中
    - 按照匹配的先后顺序,为每个()划分编号
    - 第一个()里的内容,用 代替,第二个()里的内容,用代替,依次类推
    - 示例:
	(M|m)any  	可以标识 Many 或者 many 代表正则表达式匹配到的所有内容
注意:
	() 范围中支持|等字符匹配内容。从而匹配更多范围的信息
	关于()信息的分组提取依赖于文件的编辑工具,我们可以借助于 sed、awk功能来实现
	提示: sed -r 's/原内容/修改后内容/'
简单实践

准备zookeeper的配置文件 [root@localhost ~]# cat zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/server/zookeeper/data dataLogDir=/data/server/zookeeper/logs clientPort=2181 server.1=10.0.0.12:2182:2183 server.2=10.0.0.13:2182:2183 server.3=10.0.0.14:2182:2183:observer 4lw.commands.whitelist=stat, ruok, conf, isro

准备配置文件

获取zookeeper的集群相关信息
[root@localhost ~]# egrep  '(server.[0-9])' zoo.cfg
server.1=10.0.0.12:2182:2183
server.2=10.0.0.13:2182:2183
server.3=10.0.0.14:2182:2183:observer

[root@localhost ~]# egrep  '(init|sync)Limit' zoo.cfg
initLimit=10
syncLimit=5

实践1-分组信息匹配实践

借助于sed的编辑文件功能,实现特定信息的提取
[root@localhost ~]# grep server.1 zoo.cfg  | sed -r "s/(.*)=(.*):(.*):(.*)//"
server.1
[root@localhost ~]# grep server.1 zoo.cfg  | sed -r "s/(.*)=(.*):(.*):(.*)//"
10.0.0.12
[root@localhost ~]# grep server.1 zoo.cfg  | sed -r "s/(.*)=(.*):(.*):(.*)//"
2182
[root@localhost ~]# grep server.1 zoo.cfg  | sed -r "s/(.*)=(.*):(.*):(.*)//"
2183

实践2-信息的提取


https://www.xamrdz.com/web/2d61951530.html

相关文章: