正则表达式

正则表达式其实就是一种字符串匹配。

 

字符组:能在一个位置上匹配的字符组,一个[]只能匹配一个字符,即可能在一个位置上出现的各种字符。

如[1234567890]只能匹配字符串'188031'中的第一个数字,即1。

用[x-y]指代x-y范围内所有的数字、字母。如[0-9]指代全部数字;[a-z]指代全部小写字母;[0-9 a-z A-Z]指代所有数字及大小写字母;[0-9 a-f A-F]可以验证十六进制;[A-z]可匹配所有大小写字母,但是这个匹配按照ascii表来,所以还会包含一部分其他符号。

如果在指代范围的同时还想匹配代表范围的-符号,可以用\转义,如[0-9 \-]代表匹配所有数字及-符号。



元字符:

.匹配除换行符之外的其他任意字符
\w匹配任意数字字母下划线   \W匹配非数字字母下划线 
\s匹配所有空白符    \S匹配非空白符
\d匹配所有数字     \D匹配非数字
\n匹配换行符    \N匹配非换行符
\t匹配制表符     \T匹配非制表符
\b匹配一个单词的结尾 
^匹配字符串开始
$匹配字符串结尾
|或 即a|b匹配a或b,abc|b匹配abc或b,注意如果是ab|abc则只匹配ab,应把长的放到左边方便完整匹配。

\b应和其他字符组合使用,如匹配结尾为g的单词则是 g\b。
任意一对大小写元字符即可匹配全局。
开始字符只匹配开始,结束字符只匹配结束,开始字符和结束字符同时约束整条正则里的所有内容。



量词:

*重复零次或多次
+匹配一次或多次
?匹配零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

所有量词在正则匹配后面,量词后面加?是非贪婪匹配(惰性匹配),正则默认为贪婪匹配。



字符集:
刘[李王张]*匹配刘后面李王张任意次数
李[^和]*匹配李后面不是和的字符任意次
[\d] 一个          [\d]+ 多个
([abc],[123])*匹配相应顺序的字符0或无数次     ()把多个字符集合为一体



常用非贪婪匹配:
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,}?重复n次以上,尽可能少重复
{n,m}?重复n到m次,尽可能少重复

.*? 任意字符 匹配0-无限次 非贪婪匹配
实例:.*?x取任意长度直到第一个x出现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值