【笔记】正则表达式[1]

元字符

符号

意思

示范

详例

\d

任意一个数字

\d{2}-\d{8}

22-12345678

*

*前的符号重复任意次数

次数可以为零

\d*

222222222222...

2

\s

任意的空白符

全半角空格,tab,换行符

\bhi\b\s\bLucy\b

hi

Lucy

+

和*用法相似

次数>=1

\d+

22

2222

\w

匹配任何单词字符串

等价于[A-Z a-z 0-9]

\d{2}\w\s\d{6}

22h 222222

222 222222

22_ 222222

^

匹配行的开始

^\d{2}

匹配元:wwwwww22wwwwwww

匹配结果:22

$

匹配行的结束

[a-z]{2}$

匹配元:2222222kfjda999999999

匹配结果:kf

?

重复0或1次

^2?$

匹配元:6dfadfhah22222jdfkajldkf9

匹配结果:22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分枝条件  | 符合 

稍微知晓编程的人都懂得,|符号的意思是或。

0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)

但是也要注意分支条件的顺序

例如:

美国就邮政编码是5位数字或5位数字-4位数字

因此就可以用\d{5}-\d{4}|\{5}进行匹配

但是如果写成\d{5}|\d{5}-\d{4}|

那么就只会匹配5位的邮编(以及9位邮编的前5位)

反义

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

分组

我们可以对某个单词进行重复匹配,那么对一组字符串又该如何重复匹配呢??我们可以在需要匹配的正则外面加上小括号加以分组。

比如:

(\d{3}.){3}\d{4},这个表达式就能匹配出173.169.111.9999

 

转载于:https://www.cnblogs.com/nonkicat/archive/2012/09/12/2682483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值