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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xyh930929/article/details/82049700

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

行的起始和结束

  • 脱字符号^(代表一行的开始)
  • 美元符号$(代表一行的结束)
^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 
gre|ay 
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]*)?

元字符总结

这里写图片描述

猜你喜欢

转载自blog.csdn.net/xyh930929/article/details/82049700