教你学会使用Python正则表达式

yipeiwu_com7年前Python基础

今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。

re模块

re.search

经常用match = re.search(pat, str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。

re.match

re.match和re.search很相似,只是re.match是从字符串的开头开始匹配。

常用正则字符意义 a, X, 9,等字符匹配自己, 元字符不匹配自己,因为有特殊意义,比如 . ^ $ * + ? { }[ ] \ | ( ) . 英文句号,匹配任意字符,不包含'\n' \w 匹配'word'字符,[a-zA-Z0-9] \W 匹配非'word'字符 \b 匹配'word'和'non-word'之间边界 \s 匹配单个whitespace字符,space, newline, return, tab, form [\n\r\t\f] \S 匹配non-whitespace字符 \t, \n, \r 匹配tab, newline, return \d 匹配数字[0-9] ^ 匹配字符串开头 $ 匹配字符串结尾 重复

‘+' 一或多次, ‘*' 零或多次, ‘?' 零或一次

方括号[]

[]类似于or

Square brackets can be used to indicate a set of chars, so [abc] matches 'a' or 'b' or 'c'.

Group Extraction圆括号()

有时候需要提取匹配字符的一部分,比如刚才的邮箱,我们可能需要其中的username和hostname,这时候可以用()分别把username和hostname包起来,就像r'([\w.-]+)@([\w.-]+)',如果匹配成功,那么pattern不改变,只是可以用match.group(1)和match.group(2)来username和hostname,match.group()结果不变。

findall and groups

()和findall()结合,如果包括一或多个group,就返回a list of tuples。

给re.search加^之后是一样的。

re.sub

re.sub(pat, replacement, str)在str里寻找和pattern匹配的字符串,然后用replacement替换。replacement可以包含\1或者\2来代替相应的group,然后实现局部替换。

相关文章

python实现k均值算法示例(k均值聚类算法)

简单实现平面的点K均值分析,使用欧几里得距离,并用pylab展示。 复制代码 代码如下:import pylab as pl #calc Euclid squiredef calc_e_...

Python实现的生产者、消费者问题完整实例

本文实例讲述了Python实现的生产者、消费者问题。分享给大家供大家参考,具体如下: 生产者、消费者问题,经典的线程同步问题:假设有一个缓冲池(列表),生产者往里面放东西,消费者从里面取...

对pandas的行列名更改与数据选择详解

对pandas的行列名更改与数据选择详解

记录一些pandas选择数据的内容,此前首先说行列名的获取和更改,以方便获取数据。此文作为学习巩固。 这篇博的内容顺序大概就是: 行列名的获取 —> 行列名的更改 —> 数据...

Python实现的json文件读取及中文乱码显示问题解决方法

本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法。分享给大家供大家参考,具体如下: city.json文件的内容如下: { "cities": [ {...

Python 数据结构之队列的实现

Python 队列 Queue 队列是一种先进先出(FIFO)的数据类型, 新的元素通过 入队 的方式添加进 Queue 的末尾, 出队 就是从 Queue 的头部删除元素. 用列表来做...