正则 指定开头结尾_Python核心知识系列:正则表达式与JSON

b5b7e0bc56de425c080d4ae1fea481ab.png

1 正则表达式必知必会

1.1 简介

正则表达式:是一些用来匹配和处理文本的字符串。

正则表达式的使用场景主要以下两种情况:一是查找特定的信息(搜索),二是查找并编辑特定的信息(替换)。

用模式(pattern)表示实际的正则表达式。

1.2 匹配单个字符

  • 匹配普通文本:正则表达式为待匹配的文本。
  • 匹配任意字符:.字符(英文句号)可以匹配任意单个字符,如字符、字母、数字,甚至是.字符本身。
  • 匹配特殊字符:使用转义地字符,如.

1.3 匹配一组字符

  • 匹配多个字符中的某一个

使用[]定义一个字符集合,对于连续字符使用-连字符来定义字符区间。集合内字符是OR关系,匹配其中之一。

[A-Z]:匹配从A到Z的所有大写字母。

[a-z]:匹配从a到z的所有小写字母。

[0-9]:匹配从0到9的所有数字。

  • 排除

使用元字符^来排除字符集合里指定的那些字符,如[^0-9]。注意,^的效果将作用于给定字符集合里的所有字符或字符区间。

1.4 使用元字符

1.4.1 元字符转义

元字符:在正则表达式里有特殊含义的字符。

转义:元字符可以通过在前面加上一个反斜杠()进行转义,这样匹配的就是该字符本身而不是特殊的元字符含义。

1.4.2 匹配空白字符

元字符大概可以分为两种:一种是用来匹配文本的(如.),另一种是正则表达式语法的组成部分(如[])。

空白元字符:换页符(f)、换行符(n)、回车符(r)、制表符(t)。

一般来说,需要匹配r、n和t等空白字符的情况比较多见。rn匹配一个回车+换行组合。

1.4.3 匹配特定的字符类型

  • 匹配数字与非数字:

d:任何一个数字字符(等价于[0-9])

D:任何一个非数字字符(等价于[^0-9]

  • 匹配字母数字或下划线:

w:任何一个字母数字或下划线字符(等价于[a-zA-Z0-9_])

W:任何一个非字母数字或非下划线字符(等价于[^a-zA-Z0-9_]

  • 匹配空白字符与非空白字符:

s:任何一个空白字符(等价于[fnrtv]

S:任何一个非空白字符(等价于[^fnrtv]

1.5 重复匹配

  • 匹配一个或多个字符:

+匹配一个或多个字符,在一个给定字符集合加上+后缀时,必须放在整个字符集合的外面,如[0-9]+

一般来说,当在字符集合使用时,像.和+这样的元字符被解释为普通字符,不需要转义,但转义也不影响。

  • 匹配零个或多个字符:

*用来匹配字符或字符集合出现零次或多次的情况。

  • 匹配零个或一个字符:

?可以匹配某个字符或字符集合的零次或一次。

[]的常规用法是把多个字符定义为一个集合,但不少程序员喜欢把一个字符也定义为一个集合,好处是可以增加可读性和避免产生误解。同时使用[]和?时,要把?放在字符集合的外面。

  • 具体的匹配次数:

设置具体的匹配次数,把数字写在{}中,如{3}

可以为重复匹配的次数设定一个区间范围,设置最小次数和最大次数,如{3, 5}

也可以指定至少要匹配的次数,如{3, }

  • 防止过度匹配:

在使用重复匹配如果没有上限值,则有时会导致过度匹配的现象。

*+这些都是“贪婪型”元字符,其匹配

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值