day19正则表达式

匹配符号:正则表达式是由各种各样的正则符号组合而成

1.普通字符 – 在正则中没有特殊功能和特殊意义的字符

普通字符在正则表达式中表示符号本身,例如:az,AZ,中文等等

2.特殊符号

2.2. – 匹配任意一个字符(一个.只能匹配一个字符)

2.3\d – 匹配任意一个数字字符

2.4\s – 匹配任意一个空白字符(空白字符:空格、\t、\n)

2.5\w – 匹配任意一个字母数字包括下划线(相当于[a-zA-Z0-9_])

在没有ASCII标志的字符串模式中,它将匹配Unicode字母数字字符(字母加数字加下划线)的范围

2.6\D\S

\D – 匹配任意一个非数字字符

\S – 匹配任意一个非空白字符

2.7[字符集] – 匹配字符集中任意一个字符

减号(-)在两个符号之间,表示谁到谁

​ [a-z] – 匹配任意一个小写字母

​ [A-Z] – 匹配任意一个大写字母

​ [a-zA-Z] – 匹配任意一个字母

​ [\u4e00-\u9fa5] – 匹配任意一个中文

2.8[^字符集] – 匹配不在字符集里的任意一个字符

匹配次数符号
  1. * – 匹配0次或多次(任意次数)
  2. + – 匹配1次或多次(至少1次)
  3. ? – 匹配0次或1次
  4. {}
    {N} – N次
    {M,N} – M到N次
    {M,} – 至少M次
    {,N} – 最多N次
贪婪和非贪婪

在匹配次数不确定的时候,匹配模式分为贪婪和非贪婪两种(默认为贪婪模式)

*、+、{M,N}、{M,}、{,N}、? - 贪婪

*?、+?、{M,N}?、{M,}?、{,N}?、?? - 非贪婪

注意:python中除了fullmath以外都有可能出现贪婪和非贪婪的问题

分组与分支

分组 – ()

应用场景1:将正则表达式中的部分用()括起来作为一个整体进行相关操作

应用场景2:重复。可以在有分组的正则表达式中通过\N来重复它前面第N个分组匹配到的内容

应用场景3:捕获。使用findall的时候,如果正则表达式中有分组,返回数据的时候只返回分组中匹配到的内容

分支 – |

正则1 | 正则2 – 正则1和正则2中只要有一个能匹配成功就匹配成功

__转义字符 __

在本身具备特殊功能或者特殊意义的符号前加\,让其功能或者意义消失,变成一个普通符号

另一种方法:单独一个符号有特殊功能的时候可以将该符号放在[]中,让其特殊功能消失

忽略大小写

在正则的最前面加(?i)将会忽略大小写

单行匹配和多行匹配

多行匹配匹配的时候,不能和’\n’匹配(默认) – (?m)

单行匹配匹配的时候,可以和’\n’匹配 – 在正则的最前面加(?s)



利用正则表达式完成下面的操作:

一、不定项选择题
  1. 能够完全匹配字符串"(010)-62661617"和字符串"01062661617"的正则表达式包括(A B D)

    A.r"\(?\d{3}\)?-?\d{8}"
    B. r"[0-9()-]+"
    C.r"[0-9(-)]*\d*"
    D.r"[(]?\d*[)-]*\d*"

  2. 能够完全匹配

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值