正则表达式

目录

正则表达式分类

基本正则表达式

扩展正则表达式

元字符匹配

匹配次数

位置锚定


正则表达式分类

正则表达式:REGEXP,REGular EXPression。
正则表达式分为两类:

  • Basic REGEXP(基本正则表达式)
  • Extended REGEXP(扩展正则表达式)

基本正则表达式

//元字符
    .           //任意单个字符
    []          //匹配指定范围内的任意单个字符
    [^]         //匹配指定范围外的任意单个字符
//匹配次数(贪婪模式)
    *           //匹配其前面的任意单个字符任意次
    .*          //任意长度的任意字符
    \?          //匹配其前面的任意单个字符1次或0次
    \+          //匹配其前面的任意单个字符至少1次
    \{m,n\}     //匹配其前面的任意单个字符至少m次,至多n次
//位置锚定
    ^           //锚定行首,此字符后面的任意单个字符必须出现在行首
    $           //锚定行尾,此字符前面的任意单个字符必须出现在行尾
    ^$          //空白行
    \<或\b       //锚定词首,其后面的任意单个字符必须作为单词首部出现
    \>或\b       //锚定词尾,其前面的任意单个字符必须作为单词尾部出现
/分组
    \(\)
    例:\(ab\)*
    //后向引用
        \1      //引用第一个左括号以及与之对应的右括号所包括的所有内容
        \2      //引用第二个左括号以及与之对应的右括号所包括的所有内容

扩展正则表达式

//字符匹配
    .       //匹配任意单个字符
    []      //匹配指定范围内的任意单个字符
    [^]     //匹配指定范围外的任意单个字符
//次数匹配
    *       //匹配其前面的任意单个字符任意次
    ?       //匹配其前面的任意单个字符1次或0次
    +       //匹配其前面的任意单个字符至少1次
    {m,n}   //匹配其前面的任意单个字符至少m次,至多n次

//位置锚定
    ^       //锚定行首,此字符后面的任意单个字符必须出现在行首
    $       //锚定行尾,此字符前面的任意单个字符必须出现在行尾
    ^$      //空白行
    \<或\b       //锚定词首,其后面的任意单个字符必须作为单词首部出现
    \>或\b       //锚定词尾,其前面的任意单个字符必须作为单词尾部出现
//分组
    ()      //分组
    \1,\2,\3,....
   例:(ab)*
    //后向引用
        \1      //引用第一个左括号以及与之对应的右括号所包括的所有内容
        \2      //引用第二个左括号以及与之对应的右括号所包括的所有内容
//或者
    |       //or 默认匹配|的整个左侧或者整个右侧的内容
    //例:C|cat表示C或者cat,要想表示Cat或者cat则需要使用分组,如(C|c)at

元字符匹配

字符释义
.任意单个字符
[]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符
[root@localhost 1]# ls
a  aa  aaa  aab  aabb  ab  abb  b  bb  bbb  c  d  e  f  g  h

[root@localhost 1]# ls | grep '^.$'
a
b
c
d
e
f
g
h
[root@localhost 1]# ls | grep '^..$'
aa
ab
bb
[root@localhost 1]# ls | grep '^...$'
aaa
aab
abb
bbb
[root@localhost 1]# ls
1  3  5  7  9  aa   aab   ab   b   bbb  d  f  h
2  4  6  8  a  aaa  aabb  abb  bb  c    e  g

[root@localhost 1]# ls | grep '^[abchijk]'
a
aa
aaa
aab
aabb
ab
abb
b
bb
bbb
c
h

[root@localhost 1]# ls | grep '^[abchijk]$'
a
b
c
h

[root@localhost 1]# ls | grep '^[a-h]$'
a
b
c
d
e
f
g
h

[root@localhost 1]# ls | grep '^[a-j]$'
a
b
c
d
e
f
g
h

[root@localhost 1]# ls | grep '^[-1-9a-j-]$'
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
g
h

[root@localhost 1]# ls | grep '^[-19a-j-]$'
1
9
a
b
c
d
e
f
g
h
[root@localhost 1]# ls | grep '^[1-5]$'
1
2
3
4
5

[root@localhost 1]# ls | grep '^[^1-5]$'
6
7
8
9
a
b
c
d
e
f
g
h

匹配次数

多用于重复匹配字符的次数。

字符释义
*匹配其前面的任意单个字符任意次
.*任意长度的任意字符
?匹配其前面的任意单个字符1次或0次
+匹配其前面的任意单个字符至少1次
{m,n}匹配其前面的任意单个字符至少m次,至多n次

可以匹配0次或者任意次,也可能为空

[root@localhost 1]# ls
1  3  5  7  9  aa   aab   ab   b   bbb  d  f  h
2  4  6  8  a  aaa  aabb  abb  bb  c    e  g

[root@localhost 1]# ls | grep '^a*b$'
aab
ab
b

[root@localhost 1]# ls | grep '^a*b*$'
a
aa
aaa
aab
aabb
ab
abb
b
bb
bbb

匹配到以a开头的任意长度的任意字符

[root@localhost 1]# ls | grep '^a.*$'
a
aa
aaa
aab
aabb
ab
abb

匹配0次或者1次

[root@localhost 1]# ls | grep '^ab\?$'
a
ab

匹配前面字符至少1次,至多任意次

[root@localhost 1]# ls | grep '^ab\+$'
ab
abb

匹配单个字符至少1次,至多任意次

[root@localhost 1]#  ls | grep '^ab\{1,1\}$'
ab

[root@localhost 1]#  ls | grep '^ab\{1,2\}$'
ab
abb

位置锚定

字符释义
^锚定行首,此字符后面的任意单个字符必须出现在行首
$锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$表示空白行
\<或\b锚定词首,其后面的任意单个字符必须作为单词首部出现
\>或\b锚定词尾,其前面的任意单个字符必须作为单词尾部出现

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值