python正则表达式

来源:互联网 发布:sportman足球分析软件 编辑:程序博客网 时间:2024/06/04 15:51

python正则表达式

python 正则表达式在进行网络爬虫的时候会发挥出很大的作用,主要进行字符串的匹配等作用,下面进行一些基础的分析
首先来了解字符的含义

模式 描述 ^ 匹配字符串的开头 $ 匹配字符串的结尾 . 匹配任意字符,除了换行符,当re.DOTALL标记被指定的时候,则可以匹配包括换行符的任意字符 […] 用来表示一组字符,单独列出:[amk]匹配’a”m”k’ [^…] 不在[]中的字符:[^abc]匹配除了abc之外的字符 * 前一个字符0次或无限次扩展,abc*表示ab,abc,abcc,abccc等 + 前一个字符1次或无限次扩展,abc+表示abc,abcc,abccc等 ? 前一个字符0次或1次扩展,abc?表示ab、abc | 左右表达式任意一个,abc|def表示abc、def

经典的正则表达式实例

正则表达式 含义 ^[A-Za-z]+$ 由26个字母组成的字符串 ^[A-Za-z0-9]+$ 由26个字母和数字组成的字符串 ^-?\d+$ 整数形式的字符串 ^[0-9]*[1-9][0-9]*$ 正整数形式的字符串 [1-9]\d{5} 中国境内邮政编码,6位 {\u4e00-\u9fa5} 匹配中文字符

进行运行之前要先进行编译,先介绍complie函数,将正则表达式的字符串形式编译成正则表达式对象

regx =re.complie(pattern,flags=0)

具体的参数说明
pattern:正则表达式的字符串或原生字符串表示
flags:正则表达式使用时的控制标记
Re库的主要函数

函数 说明 re.search() 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象 re.match() 在一个字符串的开始位置起匹配正则表达式,返回match对象 re.findall() 搜索字符串,以列表类型返回全部能匹配的字符串 re.split() 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型 re.finditer() 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象 re.sub 在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

match对象的属性

属性 说明 .string 待匹配的文本 .re 匹配时使用的pattern对象(正则表达式) .pos 正则表达式搜索文本的开始位置 .endpos 正则表达式搜索文本的结束位置

match对象的方法

方法 说明 .group(0) 获得匹配后的字符串,只是第一次匹配的结果,如果需要获得全部的,则需要参考findall方法 .start() 匹配字符串在原始字符串中的开始位置 .end() 匹配字符串在原始字符串中的结束位置 .span() 返回(.start(),.end())

RE库的贪婪匹配
默认输出最长的字串,例如:

match=re.search(r'PY.*N','PYANBNCNDN')

则最终的结果为’PYANBNCNDN’
要想获得最小匹配,如下代码可实现

match=re.search(r'PY.*?N','PYANBNCNDN')

这篇博客是我第一次使用markdown编辑的,见谅

0 0