正则表达式

正则表达式

正则表达式分类

正则表达式:REGEXP,REGular EXPression

正则表达式分两类

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

常用正则表达式

元字符

//元字符
    .           //任意单个字符
    []          //匹配指定范围内的任意单个字符
    [^]         //匹配指定范围外的任意单个字符
    
# .  任意单个字符,   
[root@localhost curry]# ls | grep "^.$"
a
b
c
d
e
f
g
h
i
#[]   匹配指定范围的任意单个字符 ,中括号里的d-h是指匹配那个范围的所有值
[root@localhost curry]# ls | grep "^[abcd-h]$"
a
b
c
d
e
f
g
h
#[^]  匹配指定范围外的任意单个字符,相当于取反且^必须要在中括号的最前面才会生效注意!
[root@localhost curry]# ls | grep "^[^abcd-h]$"
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
[root@localhost curry]# 

匹配次数(贪婪模式)

*           //匹配其前面的任意单个字符任意次
.*          //任意长度的任意字符
\?          //匹配其前面的任意单个字符1次或0次
\+          //匹配其前面的任意单个字符至少1次
\{m,n\}     //匹配其前面的任意单个字符至少m次,至多n次
#  *  匹配其前面任意单个字符任意次,abc后面的c在*号前面以可以匹配0到正无穷次。
[root@localhost curry]# ls | grep "^abc*$"
abc
abcc
abccc
abccccccc
[root@localhost curry]# 
# .* 任意长度的任意字符,这里目录下的所有文件都被匹配到了,简而言之就是匹配任意的字符。
[root@localhost curry]# ls | grep "^.*$"
a
abc
abcc
abccc
abccccccc
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
# \? 匹配其前面的任意单个字符1次或0次,单用?也是一样的效果.
[root@localhost curry]# ls | grep "^abc\?$"
abc
[root@localhost curry]# ls | grep "^abcc\?$"
abc
abcc
[root@localhost curry]# 
# \+  匹配其前面的任意单个字符至少1次
[root@localhost curry]# ls | grep "^abc\+$"
abc
abcc
abccc
abccccccc
[root@localhost curry]# 
# \{m,n\} 匹配前面任意字符最少m次,最多n次。
[root@localhost curry]# ls | grep "^abc\{1,2\}$"
abc
abcc
[root@localhost curry]# 

位置锚定

 ^           //锚定行首,此字符后面的任意单个字符必须出现在行首
 $           //锚定行尾,此字符前面的任意单个字符必须出现在行尾
 ^$          //空白行
\<\b       //锚定词首,其后面的任意单个字符必须作为单词首部出现
\>\b       //锚定词尾,其前面的任意单个字符必须作为单词尾部出现
# \<或 \b 固定词首,后面匹配到的所有字符都是以符号前面的字符为首
[root@localhost curry]# ls | grep "^a\b$"
a
# \>或\b 固定词尾,后面匹配到的所有字符都是以符号前面的字符结尾。
[root@localhost curry]# ls | grep "^cba\b$"
cba
[root@localhost curry]# 

分组

\1\2\3....
   例:(ab)*
    //后向引用
        \1      //引用第一个左括号以及与之对应的右括号所包括的所有内容
        \2      //引用第二个左括号以及与之对应的右括号所包括的所有内容
//或者
    |       //or 默认匹配|的整个左侧或者整个右侧的内容
    //例:C|cat表示C或者cat,要想表示Cat或者cat则需要使用分组,如(C|c)at


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值