正则表达式

Character Class

字符组

1.定义:

正则表达式中的结构体(construct)'[……]'成为字符组(character class),它容许使用者列出在某处期望匹配的字符。

2.使用:

a.匹配若干字符之一

例1,需要搜索单词“grey”,但是不确定是“gray”还是“grey”,使用正则表达式

gr[ae]y

可以匹配出“gray”和“grey”,

例2,需要搜索单词smith,但是单词首字母可能会大写,使用正则表达式

[Ss]mith

可以匹配出“smith”和“Smith”

例3,需要匹配<h1>...<h6>,字符组可以列举任意多个字符,因此使用正则表达式

<h[123456]>或者<h[1-6]>

可以匹配出

注:“-”是字符组元字符,称为“连字符”,它表示一个范围。([0-9],[a-z]是很常用的匹配数字和小写字母的简便方式,同时[0-9a-zA-Z]也是常用的多重范围匹配)

b.排除型字符组

例1,需要匹配满足条件(字母q后面不是字母u),使用正则表达式

q[^u]

它将匹配一个未列出的字符(u是列出的字符)


Dot

a.用点号匹配任意字符

例1,需要匹配出时间的数字,时间格式可能为(23-08-00|23:08:00|23/08/00),使用正则表达式

[[0-23].[0-59].[0-59]]

注:"."也是一个元字符,它是一个能够匹配任意字符的“占位符”,上例中的.也可以用[-:/]列举法替换


Alternation

多选结构

a.匹配任意子表达式

例1,需要从一封email中匹配出发信人(from)日期(date)标题(title),使用正则表达式

^(from|date|title):

能匹配出第一行起始是from: date: title:(gr[ae]y可以用多选结构gray|grey代替)


Optional Items

可选项元素

a.元字符'?'

例1,7月英文写法有两种:July和Jul,使用正则表达式

July?

能匹配出July和Jul

注:元字符'?'前面的元素是可选的,匹配时可以有也可以没有


Repetition

重复出现

1,定义

元字符'+'和'*'都用于表示重复出现,其中'+'表示之前紧邻的元素出现1次及以上,而'*'表示出现0次及以上。

2,使用

例1,有一个HTML的tag <size=14>,等号,尖括号内侧都有可能有空格,使用正则表达式

<.*size.*=.*[0-9]+.*>

注:[0-9]+表示它是一个大于等于0的数,.*表示可以出现任意多个空格

例2,美国的股票代码是1到5个字母组成,使用正则表达式

[a-zA-Z]{1,5}

注:使用大括号{m,n}表示前面紧邻元素重复的次数在m到n次


Escape

转义

1,定义

在匹配的文本中可能需要匹配点,问号,斜杠,括号等字符,但是这些字符却是正则表达式的元字符,因此使用转义来表示

2,使用

例1,匹配出可能带有小数点的美元,使用正则表达式

\$[0-9]+(\.[0-9]+)?

注:由于可能带有小数点,因此小数点后面需要元字符"?"。由于"."是一个元字符,因此需要加上反斜杠来转义,表示这里应该匹配的是个点,而不是任意字符


 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值