码迷,mamicode.com
首页 > 编程语言 > 详细

大话Python正则表达式

时间:2017-06-25 14:58:57      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:分割   group   ace   替换字符串   tom   style   ase   贪婪   返回   

python的正则表达式模块re

import re

match_object=re.compile(r"")

result=re.match(match_object,"resource string") 

result=re.search(match_object,"resource string")

result=re.findall(match_object,"resource string") # 注意区别

match_object.match("resource string").group()

match_object.search("resource string").group()

match_object.findall("resource string")           #上下两种方式任选一种,findall是返回列表
print result.group()

match()与search()的区别:

match是从源字符串头开始,仅当从头开始匹配成功,才能成功从一串字符串中匹配到目标字符串

rearch是从源字符串任意位置开始匹配

match和search的共同点是一旦匹配成功就返回,因而只会从源字符串中成功匹配一个目标字符串

findall 是将源字符串中的所有匹配的目标字符串,以列表的形式返回

match_object=re.compile(r"") # r 表示原字符串,比如存在"\"字符时,"\"不再表示转义的意思,而是 保持本身作为一个普通字符串的含义

"\"用在字符串中的意思是转义,例如"\\n"不再表示换行符,而是普通字符"\n"

print "\n"     #输出换行


print "\\n" 
\n             #输出普通字符,没有换行意思
print r"\n"    
\n             #输出普通字符,没有换行意思
print r"\\n"
\\n            #输出普通字符

match_object=re.compile(r"")

匹配目标,正则表达式定义:

"\d{}"  "\d"匹配数字,"{}"表示匹配的个数,{5}匹配5个,{1,}至少匹配1个,{3,8}匹配3至8个;

"^" 以什么开始

"$" 以什么结束

"[0-9a-z]" 匹配[]中包含的一个字符

"[^0-9]"    表示匹配非数字的字符串,"^"用在[]里面不再表示以什么开始,而是表示非

"你|我|他"  "|"表示"或"的意思

"?" 表示匹配次数要么为0,要么为1

"*" 表示匹配任一次数,即是0次或0次以上

"+"表示至少匹配一次

"*?" 表示非贪婪匹配  即是尽可能少的匹配

p = re.compile(r‘woyouy*?‘)
result = re.match(p, ‘woyouyyyyyyy‘)
print result.group()
woyou

 "." 通配符,可以表示除换行以外的所有字符,如果加上re.DOTALL,使"."什么都可以匹配,还有re.IGNORECASE,re.VERBOSE

re.VERBOSE 可以排除注释和空白字符

p = re.compile(rgood.haha, re.DOTALL)
result = re.findall(p, good\nhaha)
print  result
[good\nhaha]

p = re.compile(rgood.haha, re.IGNORECASE | re.DOTALL)
result = re.findall(p, GOOD\nHahA)
print result
[GOOD\nHahA]


p = re.compile(r‘‘‘
    \w+. # asdf
    \w+‘‘‘ #12
           ,re.IGNORECASE | re.DOTALL | re.VERBOSE)
result = re.findall(p, GOOD\nHahA)
print result
[GOOD\nHahA]

 

"\w" 表示匹配单词,它是包括数字的

"\s" 表示匹配红白/换行/制表符

分割字符串:

p = re.compile(r‘\d+‘)
 result = re.split(p, ‘tom32jerry456haha‘)
print result
[‘tom‘, ‘jerry‘, ‘haha‘]

 替换字符串:

p = re.compile(r‘\d+‘)
result = re.sub(p, ‘replace‘, ‘tom32jerry456haha‘)
prinr result
tomreplacejerryreplacehaha

 

大话Python正则表达式

标签:分割   group   ace   替换字符串   tom   style   ase   贪婪   返回   

原文地址:http://www.cnblogs.com/wc554303896/p/7076733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!