python的re模块及正则表达式的使用

不知是因为自己太低端还是其他的什么原因,别人都说的正则表达式非常强大,可是我的意识中正则表达式有用,但总是觉得没有传说中的那么厉害。也有可能是自己没有真正的理解它吧。在python中再次偶遇,那就再来好好学习一番。

首先是通配符,点号(.)可以匹配除了换行符之外的任意一个字符,‘.ython’可以匹配’python‘也可以匹配’jypthon‘。注意点号是匹配一个字符,不能使空更不能是多个。假如在需要匹配的字符串中包含了点号,这时候就需要转义符来实现,在re中使用(python\\.org)来匹配(python.org).

匹配字符集,使用[ ]表示,[pj]ython就表示匹配python或者jython,而非其他内容。使用[a-z]表示匹配任意一个小写字母;[a-zA-Z0-9]则表示匹配任意字母或数字。

反转字符集,可以在开头使用^字符[^abc]表示匹配除了a b c之外的任意字符。当然,如果匹配的内容中包括了^ [ ]等符号时也需要使用反转字符。

选择符和子模式,在字符串的每个字符都不一样的时候字符集是很好用的,但是如果想匹配字符创python和per呢,这个时候可以使用选择符“|”,python|per就表示匹配python或者per。有时候不需要对整个字符使用选择符,p(ython|er)表示的意义和上面一样,而小括号中的部分就被称为子模式。

可选项和重复子模式,(python)?为可选项,即该子模式存在或者不存在。(python)*表示模式重复0次或者多次,(python)+表示子模式重复一次或者多次,(python){m,n}表示重复m~n次。

匹配开头和结尾,匹配开头的时候使用^,如^http表示匹配以http开头的字符串,匹配结尾使用$符号,com$表示匹配以com为结尾的字符串。

some_text="gao xiang... huier"
import re
if re.search("xiang",some_text): #find the world in the text
	print "found it"

if re.match("xiang",some_text): #macth the world from the s
	print "found it,too"

str1=re.split("[. ]+",some_text)
print str1

str2=re.split("[. ]+",some_text,maxsplit=2) #split the text into 3 parts
print str2

str3=re.findall("[a-zA-Z]+",some_text) #find all the substring of the text
print str3

pattern="www.python.org"
str4 = re.escape(pattern)
print str4

关于正则表达式在python中的使用,

search(pattern,string)根据包含正则表达式在字符串中寻找,返回true 或 false

match(pattern,string)在字符串的开头出进行匹配

split(pattern,string,flags)根据模式对字符串进行分割,可以通过控制参数控制分割的子结构的数目

findall(pattern,string)列出所有匹配项

escape(string),自动将字符串中的所有特殊郑则仕字符转义

时间: 2024-10-14 11:21:25

python的re模块及正则表达式的使用的相关文章

python之常用模块和正则表达式

今天我们来谈谈python中模块的使用,在探讨模块前先来了解一下正则表达式的具体用法. 1.正则表达式 正则表达式就是匹配 字符串内容的一种规则.谈到正则就和字符串相关了,首先我们要知道什么是字符组. 字符组 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字.字母.标点等等. 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0.1.2...9这10个数之一. 字符: 元字符 匹配内容 .  匹配除换行符以外的任意字

python 之 re模块(正则表达式)

一.起源(历史) 正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究.美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们创造性地将神经系统中的神经元描述成了小而简单的自动控制元,从而作出了一项伟大的工作革新. 在1956 年,一位名叫Stephen Kleene的数学科学家,他在Warren McCulloch和Walter Pitts早期工作的基础之上,

python之re模块和正则表达式

正则表达式: 正则 待匹配字符 匹配结果 说明 [0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 [0123456789] a False 由于字符组中没有"a"字符,所以不能匹配 [0-9] 7 True 也可以用-表示范围,[0-9]就和[0123456789]是一个意思 [a-z] s True 同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 [A-Z] B True

python常用模块(1):collections模块和re模块(正则表达式详解)

从今天开始我们就要开始学习python的模块,今天先介绍两个常用模块collections和re模块.还有非常重要的正则表达式,今天学习的正则表达式需要记忆的东西非常多,希望大家可以认真记忆.按常理来说我们应该先解释模块概念性东西再来学习具体的模块使用.可是直接解释可能反而不好理解,模块的使用非常方便,所以我们采用先介绍使用常用模块过两天再具体进行模块概念的讲解. 预习: 实现能计算类似 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998

正则表达式和python的re模块

正则表达式和python的re模块 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章目录 1. 什么是正则表达式 2. 元字符使用一览表: 3. 字符转义 4. 重复 5. 字符类 6. 分支条件 7. 分组 8. re模块 8.0.1. compile 8.0.2. match和search 8.0.3. split 8.0.4. findall 8.0.5. finditer 8.0.6. sub 8.0.7. subn 9. 参考资料 什么是正则表达式 在编写处理字符串的

Python之re模块 - 正则表达式操作

一.前言 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.而正则表达式就是一种用来描述字符串的强有力的武器.它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它"匹配"了,否则,该字符串就是不合法的. 学习本章知识,你需要有了解正则表达式基础, 网上快速入门教程一抓一大把,这里就不再叙述了. 二.re 模块 Python 的 re 模块提供了与 Perl 相似的正则表达式匹配操作, Unicode 字符串也同样适用.

正则表达式与Python中re模块的使用

正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 另外,给大家介绍一个在线测试正则表达式的神器网站:http://tool.chinaz.com/regex 大家可以去这里练习正则表达式 下面总结一下正则表达式与re模块的基础与使用. 正则表达式 使用场景 关于正则表达式的基本概念这里就不赘述了,大家可以去各种百科里查找它的定义.正则的使用场景主要分为两个: 一是:检测某一段字符串是否符合规则,也就是我们常说的"校验"

Python re模块与正则表达式详解

Python 中使用re模块处理正则表达式,正则表达式主要用来处理文本中的查找,匹配,替换,分割等问题:我们先来看一个问题,切入正则表达式. 问题: 匹配字符串,最少以3个数字开头.使用Python代码如何实现?检查条件: 1>字符串长度判断:2>判断前三个字符是否是数字: 这样实现起来有点啰嗦,我们可以使用正则表达式,先来看正则表达式基本语法. 1 正则表达式基本语法 . 匹配任意字符(不包括换行符) ^ 匹配开始位置,多行模式下匹配每一行的开始 $ 匹配结束位置,多行模式下匹配每一行的结束

Python常用模块及正则表达式知识点,你需要了解的全在这了

近年来随着人工智能的火热,也让Python语言逐渐被更多人所接受,一个原因是Python语法比较简洁,几十行代码就能实现一个超级复杂的功能(比如今年过年时,有同学用Python生成对联):另外一个原因是Python强大的类库支撑,比如:NASA(美国国家航空航天局)的很多数据处理库都是用Python实现的,在2018年,NASA甚至还拍了个宣传片,用sublime Text+Python实现了登月计划,是不是很Niubility. 在平时工作中的很多场景你都可能会用到Python,比如:写单元测