正则

在开发中会有大量的处理字符串的工作 比如注册登录时的如何判断一个手机号是不是一个手机号
可以使用正则表达式来分辨过滤 在代码中的简写是(regex | regexp | re)

. 匹配任何字符字母及数字 除\n换行符外

\ 转义字符 使字符改变原来的意思

[...] 字符集[^a]表示不是a的其他字符这里不是以a开头的意思

预定义字符集 可以写在字符集中

\d [0-9] 匹配0-9中的任意数字

\D [^\d]匹配非数字

\s   t/r/n/f匹配空白字符

\S匹配非空白字符

\w匹配0-9A-Za-z+下划线 数字大小字母下划线

\W [^\w]匹配非数字大小字母下划线

数量词用来匹配次数 用在字符或(...)之后

*匹配前一个字符0次或无限次

+匹配前一个字符1次或无限次

?匹配前一个字符0次或1次

{m}匹配前一个字符的m次

{m,n}m和n可以省略+?(非贪婪)匹配m次不加则匹配n次{2,6}最少匹配2次最多匹配6次;

^匹配以字符开头

$匹配以字符结尾

\A匹配字符串开头

\Z匹配字符串末尾

\b匹配\w和\W之间

\B [^\b]非\b

|或者从左至右匹配没在括号中使用时范围是全文

(...)分组  被括起来的称为一组 左边是分组 右边是编号

左边(?P=<name起一个名字>) 右边(P=<name起的名字>)
在 Python 中,我们可以使用内置的 re 模块来使用正则表达式。

有一点需要特别注意的是,正则表达式使用 对特殊字符进行转义,所以如果我们要使用原始字符串,只需加一个 r 前缀,示例:

re 模块的一般使用步骤如下:

使用 compile() 函数将正则表达式的字符串形式编译为一个 Pattern 对象

通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果,一个 Match 对象。

最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作


compile 函数

compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下:

import re将正则表达式编译成 Pattern 对象pattern = re.compile(r'\d+')

修饰符号                                    描述

re.I                    使用匹配对大小写不敏感(不区分大小写)

re.S                  使.匹配包括换行符在内的所有字符

re.M                  多行匹配

re.L                  做本地化识别

在上面,我们已将一个正则表达式编译成 Pattern 对象,接下来,我们就可以利用 pattern 的一系列方法对文本进行匹配查找了。


Pattern 对象的一些常用方法主要有:

match 方法:从起始位置开始查找,一次匹配

search 方法:从全文开始查找,一次匹配

findall 方法:全文开始全部匹配,返回列表

finditer 方法:全文开始全部匹配,返回迭代器

split 方法:全文开始分割字符串,返回列表

sub 方法:全文替换

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 7,193评论 0 99
  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,013评论 4 46
  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 4,059评论 0 13
  • 搞懂Python 正则表达式用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一...
    厦热阅读 1,626评论 0 2
  • 当他们(孩子)醒来,我们可以强化他们的观察能力,从花朵如何盛放开始,天上的星星如何闪烁——让他们去观察,让他们数星...
    花草姐姐阅读 332评论 1 1