Python教程

python-常用模块

本文主要是介绍python-常用模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Day 25

正则模块

正则语法

正则表达式:一种匹配字符串的规则,由两种基本字符类型组成:原义(正常)文本字符和元字符。

程序领域的用途:

  • 登录注册页的表单验证
  • 爬虫
  • 自动化开发 日志分析

元字符

指那些在正则表达式中具有特殊意义的专用字符

字符 描述 举例
[] 字符组:在一个位置上可能出现的各种字符,写法是 [可能出现的字符] [0-9][A-Z][a-z]
[^] ^在字符组开头表示非,即匹配不是这些字符的内容 [^123abc] 匹配不是123abc的其他字符
| 或,匹配竖线任意一边的所有字符 abc|123 表示匹配abc或者123
( ) 分组,表示一个子表达式的作用域 a(bc|1)3 其中|的作用域为()内的bc与1,匹配abc3与a13
\w word 匹配一个位置的数字、字母与下划线 ,相当于[0-9A-Za-z_]
\d digit 匹配一个位置的数字,相当于[0-9]
\s space 匹配一个位置的空白字符(换行符包括回车,空格,tab也叫制表符)
\W 与\w相反,相当于 [^0-9A-Za-z_]
\D 与\d相反,相当于[^0-9]
\S 与\s相反,匹配非空白字符
\n 匹配一个位置的回车
\t 匹配一个位置的制表符tab
[\d\D] 匹配一个位置的所有字符,\d是数字能匹配上,\D非数字也能匹配上,类似的还有 [\w\W] [\s\S]
\b 匹配某个字符为一个单词的边界,\b表示边界 \bw 匹配 word的w, h\b 匹配hello的h
^ 除了[^]其他情况都表示以什么开头,整篇开头,不是行开头 ^w 匹配开头的w字符
$ 以什么结尾,整篇结尾,不是行结尾 end
. 匹配除换行符 \n 之外的任何单字符
\ 将有特殊匹配意义的字符转译为普通字符 . 表示匹配普通字符的一个点
以下为量词
{} 匹配前面的子表达式多少次 \d{5} 匹配5个数字
{n,} 匹配前面的子表达式n到多次 \d{2,} 匹配>=2个数字的字符
{n,z} 匹配前面的子表达式n到z次 \d{2,5} 匹配 >=2 <=5 个数字的字符
匹配前面的子表达式0次或一次 do(es)? do 与 does都能匹配上
+ 匹配前面的子表达式1次或多次 do(es)+ does与doeses 能匹配上
* 匹配前面的子表达式0次或多次,是?与+的合集
特殊用法
量词? 量词后加一个?表示惰性匹配,在整个正则表达式能匹配上的情况下,匹配量词对于的子表达式的最少次数,量词后 不加?表示贪婪匹配 a\d{2,5}?z a1234z能匹配上,虽然是惰性机制,但是以匹配上为前提,还要匹配后面的z

补充说明:

字符组

表示在一个位置上可能出现的各种字符,写法是 [可能出现的字符] eg:[0-9a-b] [abc]
[]中可以是一个范围或者巨头的字母或数字

#[XX1-XX2]必须按ASCII从小到大的顺序写,不能写成[9-2] [z-c]
#一个[]表示匹配一个字符

[0-9] 匹配某一个位置为数字
[A-Z] 匹配某一个位置为大写字母
[a-z] 匹配某一个位置为小写字母

[0-9A-Za-z]匹配某一个位置为数字与字母
[2-5] 匹配某一个位置为2-5的数字
[5sjA] 匹配某一个位置为5sjA中的一个字符

量词

  • 表达式加量词 默认贪婪匹配,使用回溯算法
  • 表达式加量词加? 表示惰性匹配
    回溯算法
    image
    惰性机制
    image
这篇关于python-常用模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!