30分钟学习正则表达式指南(二)

 

6 /ba/w*/b查找以字母a开始的词组

 

这个以查找词组的起始位置(/b),然后是字母“b”,然后是任何重复的文字或者数字字符(/w*),然后是词组的结尾(/b)。

 

7 /d+ 查找重复的数字

这里面,“+”与“*”很相似,但是“+”要求至少匹配一次。

 

8 /b/w{6}/b 查找六个字母的词组

试着在Expresso中运行这些表达式,然后开始你自己的正则表达式测试。下面的列表中就是一些具有特殊意义的字符:

.

匹配除新行外的所有字符

/w

匹配任意字母字符

/s

匹配任意空白字符

/d

匹配任意数字

/b

匹配单词的开始或者结尾

^

匹配字符串的开始

$

匹配字符串的结尾

1 常用到的特殊字符正则表达式

 

开始

特殊字符“^”与“$”经常用来查找开始或者结尾匹配。在校验整个输入必须符合某一个格式时,这个就显得尤为有效。例如,校验一个7位数字的电话号码,你可能这样使用:

 

9 ^/d{3}-/d{4}$ 校验7位数字的电话号码

 

这个同例5一样,但是它仅仅是强制要求整体输入,而匹配之后没有校验其他任何东西。在“.NET”中通过设置“Multiline”选择,“^”与“$”可以改变原有的意义,而去匹配单独一行文本的开始和结束匹配,而不是整个文本。“Expresso”使用了这个选项。

 

转义字符

当你确实想要查找任意一个特殊字符如“^”或者“$”的时候就会出现一些问题。使用反斜杠就可以去掉特殊的含义,比如“/^”、“/$”以及“//”,可以匹配本来的字符含义:“^”、“$”以及“/”。

 

重复

你已经明白{3} 以及“*”,都用来表示单一字符的重复出现。到后面,你将看到同样的符号将用来重复整个子表达式。这里还有其他几种方式来制定一个重复,如下表中:

*

重复任意次数

+

重复至少一次

?

重复一次或者零次

{n}

重复 n

{n,m}

重复n次,但是不超过m

{n,}

重复至少n

2 常用到的数量词

 

我们将开始一些其他的例子:

10  /b/w{5,6}/b 查找5或者6个字母

 

11  /b/d{3}/s/d{3}-/d{4} 查找10位数字的电话号码

 

12  /d{3}-/d{2}-/d{4} 社会安全号码

 

13  ^/w* 一行中或者文本中的第一个词语

 

在最后一个例子中,尝试有或者没有“Multiline”选项,这个将改变“^”的含义。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值