欢迎来我Python萌新的小站

Python笔记:正则表达式

基本概念

正则表达式(或RE)是一种小型的、高度专业化的编程语言,内嵌在Python中,并通过re模块实现。 import re

  • 可以为想要匹配的相应字符串集指定规则
  • 该字符串集可能包含英文语句、e-mail地址、命令或任何你想要搞定的东西
  • 可以问诸如“这个字符串匹配该模式吗?” 或 “在这个字符串中是否有部分匹配该模式呢?”
  • 你也可以使用RE以各种方式来修改或分割字符串

正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。它是一个小型的、功能有限的语言。并非所有字符串处理都能用正则表达式去完成,使用正则表达式的原则还是简单,实用。

字符匹配

普通字符:

  • 大多数字幕和字符一般都会和自身匹配
  • 如正则表达式test会和字符串“test”完全匹配

元字符:

^

  • 匹配行首。除非设置MULTLINE标志,它只是匹配字符串的开始。在MULTILINE模式里。它也可以直接匹配字符串中的每一个换行

$

  • 匹配行尾,行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置

*

  • a*:规则a重复0次或多次(小于20亿次)

+

  • a+:规则a重复1次或多次(小于20亿次)
  • 与*的区别在于,“+”至少要求一次

?

  • a? : 表示a重复0次或者1次,即a可有可无,但最多只能出现一次
  • a+? :做最小匹配。a+?即只匹配1次,a*?即匹配0次

{ }:

  • a{5}:a规则重复5次
  • a{m,n} :a至少重复m次,最多重复n次。 {0,} = *; {1,} = +; {0,1} = ?

[ ]

  • 常用来指定一个字符集:[abc]; [a-z]  ->  只要满足[]内任意一个字符规则即可满足。如 t[io]p 可匹配 tip top
  • 元字符在字符集中不起作用:[akm$]  ->  匹配a, k, m, $任一字符
  • 补集匹配不在区间范围内的字符:[^5]  ->  匹配除了5以外的其他字符

\

  • 转义。反斜杠后面可以加不同的字符以表示不同的特殊意义
  • 也可以用于取消所有转义元字符: \[ 或 \\

|

  • ( ) 表示分组, ( ) 中的 | 表示“或”的关系。

( )

  • ( ) 表示分组, ( ) 中的 | 表示“或”的关系。
喜欢 (0)分享 (0)
发表我的评论
取消评论
友情提示:插入代码时请使用:  <pre>要插入的代码</pre>   以达到最佳效果!

表情     3 + 1 = ? (必填)

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址