正则表达式(一)彻底理解正则表达式的元字符

正则表达式分为元字符文字。正则表达式的元字符拥有非常强大的描述能力。

行的起始和结束
  • 脱字符号^(代表一行的开始)
  • 美元符号$(代表一行的结束)
^cat //匹配以cat开头的行
cat$ //匹配以cat结尾的行
字符组
  • [ ](用来匹配若干字符之一)
  • [^ ](用来匹配除若干字符以外的字符之一)

用来匹配若干字符之一,主要这句话的两个限定词,"字符"和“之一”。每个中括号只匹配一个字符,被匹配的字符位置是中括号中字符的其中一个。注意:[]还支持匹配范围,例如[0-9]可以匹配0-9之间的数字,但是注意-不能放在[]开始的位置 ,那样-会被当做字符来处理。

gr[ea]p //grep或者grap都可以被匹配
匹配任意字符
  • .(匹配任意字符)

正则表达式是用来匹配任意字符的符号是英文状态下的一个点。(在linux下处理文件时,通常会用*来匹配文件名。或者写sql时,会用select * 用于查询全部字段,有时也用于而在正则表达式里,)

03.19.23 //03-19-23或者03/19/23都可以被匹配
多选结构
  • | (或)

将不同的子表达式组合成一个总表达式。只要能够匹配任意一个表达式。子表达式又被称作多选分支。

//匹配grey或者gray的几种写法:
grey|gray 
gr(e|a)y 
gr[ea]y

//注意:gr[e|a]y这种写法时,|并没有作为“或”的意思,而是作为了一个可选字符。
单词分界符
  • \< (匹配单词的开头,可以理解为单词版的^)
  • \>(匹配单词的结束,可以理解为但此版的$)

单词分界符用于解决:“期望匹配的单词包含在另一个单词中”。注意:<和>并不是元字符,只有他们跟\结合起来时,才具有相应的意义。 <和\>也被叫做“元字符序列”。

\<cat //匹配以cat开头的单词
初步总结前面提到的元字符

这里写图片描述

这里写图片描述
这里写图片描述

下面继续列举元字符:

量词(quantifiers)
  • ?(可选项,把?放在一个字符后面,表示无论这个字符是否出现都可以被匹配。)
  • +(计数,紧邻元素出现一次或多次)
  • *(紧邻元素出现任意次,也可以不出现)
  • {min,max}(计数区间,可以设置重复次数)
colou?r //可以匹配color或者colour
[a-zA-Z]{1,5} //匹配出现1-5个字母

这里写图片描述

转义字符
  • \

用于解决匹配的字符本身是元字符的情况。

\.   //用于匹配字符点。
一些小例子

匹配由字母、数字、下划线组成的字符串,但是不能以数字开头[a-zA-Z_][a-zA-Z0-9_]*

匹配双引号内的字符串"[^"]*"

匹配美元金额\$[0-9]+(\.[0-9]*)?

元字符总结

这里写图片描述

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值