正则表达式(第一课)

\b代表单词的开头或结尾,也就是单词的分界处。

例:匹配字符he    \bhe\b

.  匹配除了换行符以外的任意字符。

\d  匹配数字0-9

例:电话号码010-83461893   0\d\d-\d\d\d\d\d\d\d\d或者 0\d{2}-\d{8}

\s匹配任意的空白符(空格,制表符,换行符,中文全角空格)

\w 匹配字母或数字或下划线或汉字。

d+ 匹配一个或更多的连续的数字

匹配字符串的开始

匹配字符串的结束

代表数量,重复一次或多次

重复一次或多次

? 重复一次或0

{n}重复n

{n,}重复n次或多次

{n,m}重复nm

[a-z]匹配字符

[.?!]匹配标点符号.?!

[a-z0-9A-Z]匹配小写字母,数字,大写字母

例:\(?0\d{2}[) -]?\d{8}

(010)88886666    022-22223333  010)11112222   (010-222223333

分支条件

|  表示或得意思,满足任意一个条件即可通过

\(0\d{2}\)[- ]\d{8} | 0\d{2}[- ]\d{8}

分组

192.168.100.001

匹配IP的正则表达式: \d{3}\.\d{3}\.\d{3}\.\d{3}

同样的表达式重复了3次。如何可以简洁点呢?使用()表示子表达式。

(\d{3}\.){3}\d{3}

反义

\W 匹配任意不是字母,数字,下划线,汉字的字符

\S 匹配任意不是空白符的字符

\S+ 匹配不包含空白字符的字符串

\D 匹配任意飞数字的字符

\B 匹配不是单词开头或结束的位置

[^x] 匹配除x外的任意字符

[^abc]匹配除abc外的任意字符

<a[^>]+> 匹配<>a开头的字符串

后向引用

使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。

后向引用用于重复搜索前面某个分组匹配的文本。例如\1代表分组1匹配的内容。

\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go go 。这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符(\s+),最后是分组1中捕获的内容(go)(\1)

指定组名

(?<word>\w+)意思是将\w+的组名指定为word

要反向引用这个分组捕获的内容,可以使用\k<word>

捕获

(exp) 匹配exp,并捕获内容到自动命名的组里

(?<name>exp)匹配exp,并捕获内容到name组里

(?;exp)匹配exp不捕获内容

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值