python re正则表达式模块

模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等

复习一下基本的正则表达式吧

 .:匹配除了换行符以为的任意单个字符



 *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式



+:匹配位于+之前的一个或者多个字符



 |:匹配位于|之前或者之后的字符



 ^:匹配行首



 $:匹配行尾



 ?:匹配位于?之前的零个或者一个字符,不匹配多个字符



 \:表示 \ 之后的为转义字符



 []:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字



 ():将位于()之内的的内容当作一个整体



 {}:按{}中的次数进行匹配,100[0-9]{3}表示在100之后任意匹配一个3位数(100-999)



 python中以\开头的元字符:

 
转义字符 含义
\b 匹配单词头或者单词尾
\B 和\b含义相反
\d 匹配任何数字
\D 和\d含义相反,匹配任何非数字
\s 匹配任何空白字符
\S 和\s含义相反,匹配任何非空白字符
\w 匹配任何字母,数字,下划线
\W 匹配任何非字母,数字,下划线

 

匹配的标志和含义

标志 含义
re.I 忽略大小写
re.L 根据本地设置而更改\w,\W,\b,\B,\s,\S的匹配内容
re.M 多行匹配模式
re.S 使“.”元字符匹配换行符
re.U 匹配Unicode字符
re.X 忽略需要匹配模式中的空格,并且可以使用"#"号注释

文本内容(提取linux下的passwd文件)

1 man:x:6:12:man:/var/cache/man:/bin/nologin

re模块中有3个搜索函数,每个函数都接受3个参数(匹配模式,要匹配的字符串,进行匹配的标志),如果匹配到了就返回一个对象实例,么有就返会None.

findall():用于在字符串中查找符合正则表达式的字符串,并返回这些字符串的列表

search():搜索整个字符串,返回对象实例

match():只从第一个字符开始匹配,后面的不再匹配,返回对象实例

 1 [email protected]:~/py/boke$ cat text
 2 man:x:6:12:man:/var/cache/man:/bin/sh
 3 [email protected]:~/py/boke$ cat test.py
 4 #/usr/bin/env python
 5 #coding:utf-8
 6 import re
 7 with open(‘text‘,‘r‘) as txt:
 8     f = txt.read()
 9     print re.match(‘bin‘,f)
10     print re.search(‘bin‘,f).end()
11 [email protected]:~/py/boke$ python test.py
12 None
13 34
14 [email protected]:~/py/boke$ vim test.py
15 [email protected]:~/py/boke$ python test.py
16 None
17 <_sre.SRE_Match object at 0x7f12fc9f9ed0>

返回是对象实例有2个方法,

start():返回记录匹配到字符的开始索引 

end():返回记录匹配到字符的结束索引

 1 [email protected]:~/py/boke$ python test.py
 2 None
 3 31
 4 34
 5 [email protected]:~/py/boke$ cat test.py
 6 #/usr/bin/env python
 7 #coding:utf-8
 8 import re
 9 with open(‘text‘,‘r‘) as txt:
10     f = txt.read()
11     print re.match(‘bin‘,f)
12     print re.search(‘bin‘,f).start()
13     print re.search(‘bin‘,f).end()

python re正则表达式模块

时间: 2024-11-14 01:58:36

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

Python re正则表达式模块学习【转】

感谢原作者,本文转自:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 博主还有一些比较好的python文档在此一并推荐,可以移步查看. 文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程. 注意:本文基于Python2.4完成:如果看到不明白的词汇请记得百度谷歌或维基,whate

Python之正则表达式模块

正则表达式符号: . ^ $ * + ? {} () | [] .一个点代表一个字符 ^代表开头 $代表结尾 *代表有0到无数个 [0,+00] ?代表有0到1个      [0,1] +代表有1到无数个[1,+00] {1,6}代表1到6个,{a-z}代表a到z的字母,{^A-Z}代表非A到Z的字母 \是转义: \d 匹配任何十进制 = [0-9] \D 匹配任何飞数字字符 = [^0-9] \w 匹配任何字母数字字符 = [a-zA-Z0-9_] \W 匹配任何非字母数字字符 = [^a-z

Python 的re模块

Python的正则表达式模块 1 # -*- coding:utf-8 -*- 2 3 import re 4 text = "JGood is a handsome boy, he is cool, clever, and so on..." 5 m = re.match(r"(\w+)\s", text) 6 if m: 7 print m.group(0), '\n', m.group(1) 8 else: 9 print 'not match'

python的re正则表达式模块学习

python中re模块的用法 Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,在文本解析.复杂字符串分析和信息提取时是一个非常有用的工具,下面我主要总结了re的常用方法. 1.re的简介    使用python的re模块,尽管不能满足所有复杂的匹配情况,但足够在绝大多数情况下能够有效地实现对复杂字符串的分析并提取出相关信息.python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配. import re pr

Python正则表达式模块(re模块)

Python是我接触到的第一门编程语言,虽然它足够简单,但是对于当时刚刚接触编程语言的我来说还是有些难度的,于是只是了解了一些Python的基本语法,稍微深入一点的地方都没怎么了解.不过,到现在为止,我已经接触了这门编程语言一年了,期间把Python各种特性,各种包都看过,了解过.不过对于正则表达式这块仍然一知半解,加上前段时间帮助聪哥整理了<深入Python3>的中文维护版,凑上这个国庆假期,于是来简单的聊一聊这个正则表达式模块--re. 首先是字符串中字符的替换问题,如果使用原生的Pyth

Python 正则表达式模块 (re) 简介

Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,和 Perl 脚本的正则表达式功能类似,使用这一内嵌于 Python 的语言工具,尽管不能满足所有复杂的匹配情况,但足够在绝大多数情况下能够有效地实现对复杂字符串的分析并提取出相关信息.Python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配. Python 正则表达式语法 正则表达式可以包含普通字符和特殊字符,普通字符(比如数字或者字母)可以直接对目标字符串

正则表达式和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模块的一些规则和常用函数,不足之处希望指出,我也很希望能整理出一份很完美的小结. 一.正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身.一个正则表达式模式中的字母和数字匹配同样的字符串. 多数字母和数字前加一个反斜杠时会拥有不同的含义. 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义. 反斜杠本身需要使用反斜杠转义. 由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们.模式元素