searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

正则表达式基础使用

2023-07-21 07:13:03
8
0
 
   正则表达式:由一类【特殊字符】及文本【字符】所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。
 
   字符分类:字符匹配、次数匹配、位置锚定、分组。
 
 
 

基本正则表达式:

 
  • 字符匹配:
 
.:表示任意的【一个字符】
 
[]:表示匹配中括号内的【任意单个】字符
 
[^]:表示匹配中括号外的【任意单个】字符
 
  • 次数匹配:
 
*:表示【其前字符】的任意次数
 
.*:表示任意长度的任意字符,相当于通配符的*
 
\?:表示匹配【其前字符】一次或零次(可有可无)
 
\+:表示【其前字符】出现至少一次
 
\{m\}:表示【其前字符】出现m次
 
\{m,n\}:表示【其前字符】出现至少m次,最多n次
 
位置锚定:
 
^:表示其后的字符位于行首
 
$:表示其前的字符位于行尾
 
\<或\b:词首锚定,用于单词模式的左侧
 
\>或\b:词尾锚定;用于单词模式的右侧
 
  • 分组:
 
\(spring\):将搜索括号内的整个字符串
 
\1,\2,\3..:表示引用前面【第1,2,3..括号】搜索到的第一个字符【这是分组的意义所在,就是为了引用前面搜到的字符串,如果不需要引用,和没括号的结果一样】
 
[root@Centos7 ~]# grep -n "\(l..e\)" f1
1:He love his lover.
2:She like her liker.
3:He like his lover.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
[root@Centos7 ~]# grep -n "l..e" f1
1:He love his lover.
2:She like her liker.
3:He like his lover.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
[root@Centos7 ~]# grep -n "\(l..e\).*\1" f1
1:He love his lover.
2:She like her liker.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
 
 
 

扩展正则表达式:

 
  • 字符匹配(和基本正则表达式一样):
 
.
 
[]
 
[^]
 
  • 次数匹配(与基本正则表达式相比少了“\”):
 
*
 
 
+
 
{m}
 
{m,n}
 
  • 位置锚定(与基本正则表达式一样):
 
^
 
$
 
\< \b
 
\> \b 
 
  • 分组(与基本正则表达式相比少了“\”)
 
(spring)
 
或(基本正则表达式没有这功能)
 
C|cat:表示C、cat
 
(C|c)at :表示Cat
 
 
 
grep [OPTIONS] PATTERN [FILE...]:使用基本正则表达式定义的模式来过滤文本的命令
 
-i:忽略大小写搜索
 
-o:只显示搜索到的内容
 
-v:不显示搜索到的内容 
 
-n:显示行号
 
-E:以扩展正则表达式定义的模式搜索 
 
-A #:把匹配到的行以及其后#行内容一同显示
 
-B #:把匹配到的行以及其前#行内容一同显示
 
-C #:把匹配到的行以及其前后#行内容一同显示
 
-e:实现多个选项间的逻辑or关系【相当于扩展正则表达式的‘|’】
 
[root@Centos7 ~]# grep -En "l(ove|ike)" f1
1:He love his lover.
2:She like her liker.
3:He like his lover.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
[root@Centos7 ~]# grep -e 'like' -e 'love' f1
He love his lover.
She like her liker.
He like his lover.
He love his lover and liker.
She like her liker and liker.
He like his lover and like.
0条评论
0 / 1000
麦****良
2文章数
0粉丝数
麦****良
2 文章 | 0 粉丝
麦****良
2文章数
0粉丝数
麦****良
2 文章 | 0 粉丝
原创

正则表达式基础使用

2023-07-21 07:13:03
8
0
 
   正则表达式:由一类【特殊字符】及文本【字符】所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。
 
   字符分类:字符匹配、次数匹配、位置锚定、分组。
 
 
 

基本正则表达式:

 
  • 字符匹配:
 
.:表示任意的【一个字符】
 
[]:表示匹配中括号内的【任意单个】字符
 
[^]:表示匹配中括号外的【任意单个】字符
 
  • 次数匹配:
 
*:表示【其前字符】的任意次数
 
.*:表示任意长度的任意字符,相当于通配符的*
 
\?:表示匹配【其前字符】一次或零次(可有可无)
 
\+:表示【其前字符】出现至少一次
 
\{m\}:表示【其前字符】出现m次
 
\{m,n\}:表示【其前字符】出现至少m次,最多n次
 
位置锚定:
 
^:表示其后的字符位于行首
 
$:表示其前的字符位于行尾
 
\<或\b:词首锚定,用于单词模式的左侧
 
\>或\b:词尾锚定;用于单词模式的右侧
 
  • 分组:
 
\(spring\):将搜索括号内的整个字符串
 
\1,\2,\3..:表示引用前面【第1,2,3..括号】搜索到的第一个字符【这是分组的意义所在,就是为了引用前面搜到的字符串,如果不需要引用,和没括号的结果一样】
 
[root@Centos7 ~]# grep -n "\(l..e\)" f1
1:He love his lover.
2:She like her liker.
3:He like his lover.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
[root@Centos7 ~]# grep -n "l..e" f1
1:He love his lover.
2:She like her liker.
3:He like his lover.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
[root@Centos7 ~]# grep -n "\(l..e\).*\1" f1
1:He love his lover.
2:She like her liker.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
 
 
 

扩展正则表达式:

 
  • 字符匹配(和基本正则表达式一样):
 
.
 
[]
 
[^]
 
  • 次数匹配(与基本正则表达式相比少了“\”):
 
*
 
 
+
 
{m}
 
{m,n}
 
  • 位置锚定(与基本正则表达式一样):
 
^
 
$
 
\< \b
 
\> \b 
 
  • 分组(与基本正则表达式相比少了“\”)
 
(spring)
 
或(基本正则表达式没有这功能)
 
C|cat:表示C、cat
 
(C|c)at :表示Cat
 
 
 
grep [OPTIONS] PATTERN [FILE...]:使用基本正则表达式定义的模式来过滤文本的命令
 
-i:忽略大小写搜索
 
-o:只显示搜索到的内容
 
-v:不显示搜索到的内容 
 
-n:显示行号
 
-E:以扩展正则表达式定义的模式搜索 
 
-A #:把匹配到的行以及其后#行内容一同显示
 
-B #:把匹配到的行以及其前#行内容一同显示
 
-C #:把匹配到的行以及其前后#行内容一同显示
 
-e:实现多个选项间的逻辑or关系【相当于扩展正则表达式的‘|’】
 
[root@Centos7 ~]# grep -En "l(ove|ike)" f1
1:He love his lover.
2:She like her liker.
3:He like his lover.
5:He love his lover and liker.
6:She like her liker and liker.
7:He like his lover and like.
[root@Centos7 ~]# grep -e 'like' -e 'love' f1
He love his lover.
She like her liker.
He like his lover.
He love his lover and liker.
She like her liker and liker.
He like his lover and like.
文章来自个人专栏
正则表达式使用
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0