美文网首页
20210627-python 正则表达式

20210627-python 正则表达式

作者: jiaschien | 来源:发表于2021-06-27 22:52 被阅读0次

本文抄录于《Python基础教程》(第3版),作者:Magnus Lie Hetland 译者:袁国忠

有删节。

  • 通配符

句点 . 与除换行符外的其他字符都匹配,因此正则表达式 .python 与字符串 'python''jython' 都匹配。

  • 转义

要让特殊字符的行为与普通字符一样,可对其进行转义:如对字符串中的 引号 进行转义那样,在它前面加上一个反斜杆。因此,在这个示例中,可使用模式 python\\.org ,它只与 'python.org' 匹配。

在有些情况下也可使用单个反斜杆,让解释器单独对其进行转义,让解释器自动对其转义,但不要这样依赖解释器。如果厌烦了两个反斜杆,可使用原始字符串,如 r'python.org'

  • 字符集

匹配任何字符很有用,但有时你需要更细致地控制。为此,可以用方括号将一个子串括起,创建一个所谓的字符集。这样的字符集与其包含的字符都匹配,例如 '[pj]ython''python''jython' 都匹配,但不与其他字符串匹配。

你还可以使用范围,例如 '[a-z]' 与 a~z 的任何字符都匹配。你还可组合多个访问,方法是依次列出他们。例如 '[a-zA-Z0-9]' 与大写字母、小写字母和数字都匹配。

注意:字符集只能匹配一个字符。

要指定排除字符集,可在开头添加一个^字符,例如 '[^abc]' 与除a、b和c外的其他任何字符都匹配。

  • 二选一和子模式

需要以不同的方式处理每个字符时,字符集很好,但如果只想匹配字符串 'python''perl',该如何办呢?

使用字符集或通配符无法指定这样的模式,而必须使用表示二选一的特殊字符:管道字符 (|) 。所需的模式为 'python|perl'

  • 可选模式的重复模式

通过在子模式后面加上问号,可将其指定为可选的,即可包含可不包含。例如,下面这个不太好懂的模式:

r'(http://)?(www\.)?python\.org'

只与下面这些字符串匹配

'http://www.python.org'
'http://python.org'
'www.python.org'
'python.org'

对于这个示例,需要注意以下几点。

  • 我对句点进行了转义,以防它充当通配符。
  • 为减少所需的反斜杆数量,我使用了原始字符串。
  • 每个可选的子模式都放在圆括号内。
  • 每个可选的子模式都可以出现,也可以不出现。

? 问号表示可选的子模式可出现一次,也可以不出现。还有其他几个运算符用于表示 子模式 可重复多次。

  • (pattern)* :pattern可重复0、1或多次。
  • (pattern)+ :pattern可重复1或多次。
  • (pattern){m,n} :模式可重复m~n次。

例如,r'w*\.python\.org',与 'www.python.org' 匹配,也与 '.python.org''ww.python.org''wwwwwww.python.org' 匹配。同样,r'w+\.python\.org''w.python.org',但与 '.python.org' 不匹配。

r'w{3-4}\.python\.org' 只与 'www.python.org''wwww.python.org' 匹配。

参考文献

相关文章

  • 20210627-python 正则表达式

    本文抄录于《Python基础教程》(第3版),作者:Magnus Lie Hetland 译者:袁国忠有删节。 通...

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

网友评论

      本文标题:20210627-python 正则表达式

      本文链接:https://www.haomeiwen.com/subject/thvxultx.html