正则表达式规则

        正则表达式可以匹配某些特定的数据,如果你想要从庞大的文字信息中提取出一小段你需要的数据,那么正则表达式或许能帮到你。

字符组

[ ]允许匹配一组可能出现的字符。

 可以发现[Pp]既可以匹配大写的P也可以匹配小写的p。

区间

1、要匹配任意数字可以使用[0-9]。

2、如果想要匹配所有小写字母,可以写成[a-z]。

3、想要匹配所有大写字母可以写成[A-Z]。

匹配特殊字符

“[]”在正则表达式命令中具有意义,如果我们想要匹配符号“[]”则需要进行转义即 \[] ,其他符号例如  '()' '\' 等均可实现,其中小括号若需要 '\(\)'转义两次,大括号不用转义

快捷方式

^  在[]内表示取反,在外表示匹配行首,写在匹配字符前面

$  匹配行尾,写在匹配字符后面。

\d 数字字符,等价于[0-9]。

\w 单词字符(字母,数字及下划线),等价于[0-9a-zA-Z_]。

\s 空白符(tab和空格)。

\b 匹配单词边界。

\D\W\S\B与\d\w\s\b匹配相反。

'.'匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’(回车产生的换行)在内的任何字符,请使用  ‘[.\n]’进行匹配

?匹配前一个字符或字符组出现零次或一次,另一个作用是将贪婪模式修改为非贪婪模式。

+ 匹配前一个字符或字符组一次或多次。

* 匹配前一个字符或字符组零次或多次。

匹配多个区间

在一个字符组后加上{N} 就可以表示在它之前的字符组出现N次。

{M,N},M是下界而N是上界。例如\d{3,4} 既可以匹配3个数字也可以匹配4个数字,不过当有4个数字的时候,优先匹配的是4个数字,这是因为正则表达式默认是贪婪模式,即尽可能的匹配更多字符,而要使用非贪婪模式,我们要在表达式后面加上 ?号。

分组

()   分组。使用分组时,除了获得整个匹配。还能够在匹配中选择每一个分组。

|    或者。使用分组的同时还可以是用或者条件,与“or”相同。

(?:表达式) 有时候,我们并不需要捕获某个分组的内容,但是又想使用分组的特性。

\N   表示可以引用与编号为N的分组相同的格式,且匹配的数据最终结果也与N相同。

先行 / 后行断言

(?=表达式)  正向先行断言。指在某个位置向右看,表示所在位置右侧必须能匹配表达式。

(?!表达式)  反向先行断言。指在某个位置向右看,表示所在位置右边不能匹配表达式。

(?<=表达式) 正向后行断言。指在某个位置向左看,表示所在位置左侧必须能匹配表达式。

(?<!表达式) 反向后行断言。指在某个位置向左看,表示所在位置左侧不能匹配表达式。

例子:

提取下列数据中所有人的生日,使用两个分组,第一个分组提取“月”,第二个分组提取“日”。

 请编写正则表达式匹配所有的小数:

 匹配8-16位密码包含大小写字母,数字,部分字符

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值