《学习正则表达式》读书笔记一

第一章 什么是正则表达式

什么是正则表达式

正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串。

1.1 从regexpal开始
  • 网站
http://www.regexpal.com/
1.2 匹配北美电话号码

创建文本 resample 内容如下

 707-827-7019
1.3 用字符数组来匹配数字
  • 匹配0到9的任意数字
[0-9] 
  • 正则表达式将方括号视为特殊的元字符,因此方括号不参与匹配。
  • 元字符是在正则表达式中含有特殊含义的字符,也是保留字符。

我们可以使用 grep 来验证表达式
执行

grep --color '[0-9]' resample 

结果如下
在这里插入图片描述
表示匹配0-9的任意数字

[0 1 2 7 8 9]

执行命令:

grep --color '[0 1 2 7 8 9]' resample 

结果如下
在这里插入图片描述
表示匹配方括号[ ]中的所有数字

1.4 使用字符组简写式
  • \d 和[0-9]一样匹配任意阿拉伯数字
\d\d\d-\d\d\d-\d\d\d\d

执行命令:

grep --color '\d\d\d-\d\d\d-\d\d\d\d' resample

结果如下
在这里插入图片描述

  • \D 匹配任意一个非数字字符。
\d\d\d\D\d\d\d\D\d\d\d\d

执行命令:

grep --color '\d\d\d\D\d\d\d\D\d\d\d\d' resample

结果如下:
在这里插入图片描述
这里\D 匹配了 -

1.5 匹配任意字符
\d\d\d.\d\d\d.\d\d\d\d
  • . 点号(英文句号)是一个通配符,可以匹配任意字符。但是一般不匹配起始行符

执行命令:

grep --color '\d\d\d.\d\d\d.\d\d\d\d' resample

结果如下:
在这里插入图片描述
这里 . 匹配了 -

1.6 捕获分组和向后引用
(\d)0\1\D\d\d\1\D\1\d\d\d
  • (\d)匹配第一个数字并将其捕获
  • \d匹配第二个数字但没有捕获,因为没有括号
  • \1 对数字进行反向引用

1.7 使用量词

\d{3}-?\d{3}-?\d{4}
  • 花括号中的数字表示待查找的数字出现的次数。包含数字的花括号是一种量词。花括号本身是一种元字符。
  • 问号是另一种量词,在上面表示连接符号是可选的。
  • 加号(+)表示“一个或者多个”,星号(*)表示“零个或者多个”
(\d{3}[.-]?){2}\d{4}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值