python学习笔记九:正则表达式

本文不涉及正则表达式本身的内容,只记一下python中正则的用法及常用方法。

一、re模块

python中用re模块进行正则处理

>>>import re
>>>s = r‘abc‘
>>>re.findall(s,‘aaaabcaaaaa‘)
[‘abc‘]

或先编译(会更快):

>>> import re
>>> r1 = re.compile(r‘abc‘, re.I)
>>> re.findall(r1,‘ababcabd‘)
[‘abc‘]

#或用下面的方式
>>>r1.findall(‘ababcabd‘)
[‘abc‘]

常用编译标志:

二、常用方法

1、compile:对正则进行编译,使运行速度加快,用法如上

2、match:决定RE是否在字符串刚开始的位置,返回的是Match object对象,没匹配到返回None

3、search:扫描字符串,找到这个 RE 匹配的位置,返回的是Match object对象,没匹配到返回None

4、findall:找到RE匹配的所有子串,作为列表返回

5、finditer:找到RE匹配的所有子串,作为迭代器返回,迭代器中是 Match object对象

6、sub(regex,replace【可以是函数】,content,count=0【可选,替换的数量,默认为全部】,flags=0【可选,正则参数,如re.I】):数据替换

详细参考:http://www.crifan.com/python_re_sub_detailed_introduction/

7、subn(regex,replace,content,count=0,flags=0):跟sub相同,只是返回值中包含替换次数

8、split(string [, maxsplit = 0]):把字符串按正则分隔

三、Match object 中常用方法

1、group():返回被RE匹配的字符串

2、start():返回匹配的开始的位置

3、end():返回匹配结束的位置

4、span():返回一个元组包含匹配(开始和结束)的位置

示例:

import re
m = re.match(r‘(\w+) (\w+)(?P<sign>.*)‘, ‘hello world!‘)

print "m.string:", m.string
print "m.re:", m.re
print "m.pos:", m.pos
print "m.endpos:", m.endpos
print "m.lastindex:", m.lastindex
print "m.lastgroup:", m.lastgroup

print "m.group(1,2):", m.group(1, 2)
print "m.groups():", m.groups()
print "m.groupdict():", m.groupdict()
print "m.start(2):", m.start(2)
print "m.end(2):", m.end(2)
print "m.span(2):", m.span(2)
print r"m.expand(r‘\2 \1\3‘):", m.expand(r‘\2 \1\3‘)

### output ###
# m.string: hello world!
# m.re: <_sre.SRE_Pattern object at 0x016E1A38>
# m.pos: 0
# m.endpos: 12
# m.lastindex: 3
# m.lastgroup: sign

# m.group(1,2): (‘hello‘, ‘world‘)
# m.groups(): (‘hello‘, ‘world‘, ‘!‘)
# m.groupdict(): {‘sign‘: ‘!‘}
# m.start(2): 6
# m.end(2): 11
# m.span(2): (6, 11)
# m.expand(r‘\2 \1\3‘): world hello!
时间: 2024-08-24 15:38:34

python学习笔记九:正则表达式的相关文章

python学习笔记九——文件与目录

1.python进行文件读写的函数是open或file类 mode:r  只读 r+   读写 w  写入,先删除原文件,再重新写入,如果文件没有则创建 w+  读写,先删除原文件,再重新写入,如果文件没有则创建(可写入和输出) a  写入,在文件末尾追加新的内容,文件不存在则创建 a+  读写,在文件末尾追加新的内容,文件不存在则创建 b  打开二进制文件,可与r,w,a,+结合使用 U  支持所有的换行符号,"\r","\n","\r\n"

python学习笔记八——正则表达式

1.元字符 []-常用来指定一个字符集:[abc];[a-z] -元字符在字符集中不起作用:[akm$] -补集匹配不在区间范围内的字符:[^5] ^-匹配行首 $-匹配行尾 \-后可加不同字符以表示不同意义,也可用于取消所有元字符 \d 匹配任何十进制数,相当于[0-9] \D 匹配任何非数字字符,相当于[^0-9] \s 匹配任何空白字符,相当于[\t\n\r\f\v] \S 匹配任何非空白字符 \w 匹配任何字母数字字符 \W 匹配任何非字母数字字符 *-匹配前一个字符零次或多次 +-至少

Python学习笔记(4):正则表达式

正则表达式 用法: >>>import re >>>s=r'abc' >>>re.findall(s,'abcabc') 正则语法: 元字符: . ^ $ * + ? {} [] \ | () [] 用于选择匹配 [abc] 匹配 a或者b或者c [^]用于反选,比如[^abc]不含有abc的 ^用于匹配行首 r'^abc' 匹配'abcd'而不是'dabc' $用于匹配行尾 类似^ \ : 用于转义. \d 表示数字 [0-9] \D 表示d的反 [

Python学习笔记013_正则表达式

Python中的正则表达式是通过 re 模块实现的. 通配符 .  表示除了换行以外的任何字符; 编写正则表达式时使用  r're'  , r + 正则表达式内容 >>> import re >>> >>> re.search(r'Fish.','I love FishC.com!') <_sre.SRE_Match object; span=(7, 12), match='FishC'> >>> # 如果要匹配 . 本身

python 学习笔记day09-pythonz正则表达式、socket模块

RE模块 核心函数和方法 match函数 尝试用正则表达式模式从字符串的开头匹配,如果匹配成功,则返回一个匹配对象,否则返回None >>> re.match('foo','food')   #在food 搜索foo             <_sre.SRE_Match object at 0xb70babb8>            >>> m = re.match('foo','food')            >>> m.grou

python学习笔记(正则表达式)

什么是正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.最简单的正则表达式就是普通字符串,可以匹配其自身.换包话说,正则表达式’python’ 可以匹配字符串’python’ .你可以用这种匹配行为搜索文本中的模式,并且用计算后有值并发特定模式,或都将文本进行分段. 通配符 正则表达式可以匹配多于一个的字符串,你可以使用一些特殊字符创建这类模式.比如点号(.)可以匹配任何字符.在我们用window 搜索时用问号(?)匹配任意一位字符,作用是一样的.那么

python学习笔记(十一) - 正则表达式

一.基础知识: \d 匹配一个数字 \w 匹配一个字母或数字 . 匹配任意字符 * 表示任意个字符 + 表示至少一个字符 ? 表示0个或1个字符 {n} 表示n个字符,{n, m} 表示n - m个字符 \s 表示匹配一个空格(包括Tab等空白符),\s+表示至少一个空格 [0-9a-zA-Z\_] 可以匹配一个数字.字母或者下划线 [0-9a-zA-Z\_]+ 可以匹配至少由一个数字.字母或者下划线组成的字符串 [a-zA-Z\_][0-9a-zA-Z\_]* 可以匹配由字母或下划线开头,后接

python学习笔记(九) - IO编程

一. 文件读写: 1. 读文件: try: f = open('D:\\1.txt', 'r') # 读取普通文件 f = open('D:\\1.jpg', 'rb') # 读取二进制文件 f.read() finally: if f: f.close() with open('D:\\1.txt', 'r') as f: # 使用with会自动调用close for line in f.readlines(): # readlines可以读取一行 print(line.strip()) #

Python学习笔记九:文件I/O

打印到屏幕: 1 #!/usr/bin/python 2 3 print "Python is really a great language,", "isn't it?"; 读取键盘输入: raw_input input 1 #!/usr/bin/python 2 3 str = raw_input("Enter your input: "); 4 print "Received input is : ", str inpu