PYTHON 正则表达示入门

确实是实践出真知,自己手打代码之后,以前停在理论上的东东,慢慢可以进入实战了。

比如,MATCH和SEARCH之间的区别。

#encoding: UTF-8
import re

pattern = re.compile(r'hello')
match = pattern.match('hello world!')
if match:
    print match.group()

pattern2 = re.compile(r'world')
match2 = pattern2.search('hello world.')
if match2:
    print match2.group()

pattern3 = re.compile(r'\d+')
re_string = 'one1two2three3four4'
print pattern3.split(re_string)
print pattern3.findall(re_string)
for i in pattern3.finditer(re_string):
    print i.group(),
print

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')

p = re.compile(r'(\w+) (\w+)(?P<sign>.*)', re.DOTALL)

print "p.pattern:", p.pattern
print "p.flags:", p.flags
print "p.groups:", p.groups
print "p.groupindex:", p.groupindex

p2 = re.compile(r'(\w+) (\w+)')
s2 = 'i say, hello world!'

print p2.sub(r'\2 \1', s2)
print p2.subn(r'\2 \1', s2)

def func(m):
    return m.group(1).title() + ' ' + m.group(2).title()

print p2.sub(func, s2)
print p2.subn(func, s2)

>>> ================================ RESTART ================================
>>>
hello
world
['one', 'two', 'three', 'four', '']
['1', '2', '3', '4']
1 2 3 4
m.string: hello world!!
m.re: <_sre.SRE_Pattern object at 0x00000000029F9A70>
m.pos: 0
m.endpos: 13
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!!
p.pattern: (\w+) (\w+)(?P<sign>.*)
p.flags: 16
p.groups: 3
p.groupindex: {'sign': 3}
say i, world hello!
('say i, world hello!', 2)
I Say, Hello World!
('I Say, Hello World!', 2)
>>>

时间: 2024-11-03 12:25:47

PYTHON 正则表达示入门的相关文章

求一个JAVA的正则表达示

问题描述 第一个是[#1]然后每个是[#2].[#3].[#4].[#5].[#6]怎么匹配这样的数字符串啊[#]这些都是定了的,数字不定 问题补充:能不能再写一个例子比如说String str = "badfdsfdsafsadf[#1],sfdsafsdfasdf[#2],skdf;sakfdjaksfdj"1.判断里面有多少个这样匹配的2.能匹配的换成指定字符串内容 解决方案 让我想到了万恶的面试官.比如说String str = "badfdsfdsafsadf[#1

请问一个正则表达示的写法

问题描述 怎么样得到每一行第一个字符是数字的行,然后组成数组只要每个字符是数字的行都满足条件1abc>>c>>n2qcn>>z3pop>>niu>>v结果如下:1abc2qcn3pop 解决方案 解决方案二:Mark!解决方案三:(^|n)(?<line>[0-9].*)解决方案四:stringstr=@"1abc>>c>>n2qcn>>z3pop>>niu>>v&

分析网页的内容,除正则表达之外还有其他什么方法?

问题描述 分析网页的内容,除正则表达之外还有其他什么方法?请问一下,这个网页标题和内容的正则表达示怎么写呢?http://news.sina.com.cn/c/2007-04-11/161112753911.shtml 解决方案 解决方案二:UP解决方案三:还有啊,比入字符串的indexOf(),,lastIndexOf()...等等...************************************************想不出短信?来http://www.9gaoxiao.com解

oracle 正则表达分析说明与数字正则(1/2)

    方括号表达示 方括号表达式 描述 [[:alnum:]] 字母和数字混合的字符 [[:alpha:]] 字母字符 [[:cntrl:]] 控制字符 [[:digit:]] 数字字符 [[:graph:]] 图像字符 [[:lower:]] 小写字母字符 [[:print:]] 打印字符 [[:punct:]] 标点符号字符 [[:space:]] 空格字符 [[:upper:]] 大写字母字符 [[:xdigit:]] 十六进制数字字符   l        元字符 元字符 描述 *?

协议解析-python中的正则表达匹配问题

问题描述 python中的正则表达匹配问题 20C ma = re.search(r""^x00x00x00x00x0d"" tcpapp[9:]) 请问这句是什么意思?? 是在qq报文解析中的程序片段. x00x00x00x00x0d如何理解 解决方案 看下基本原则吧 http://m.blog.csdn.net/article/details?id=49151633 解决方案二: Search(patternstringflags=0)方法在一个字符中查找匹配(

js正则表达exec与match的区别说明

 本篇文章主要是对js正则表达exec与match的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用.   最近开发遇到一些需要使用正则表达式,顺便研究一下   正则表达式对象有两个定义方式::    1.第一种定义:   new RegExp(pattern, attributes);如var reg = new RegExp("abc","g&quo

java-判断用户名字符串的问题,怎么用正则表达式和非正则表达写呢

问题描述 判断用户名字符串的问题,怎么用正则表达式和非正则表达写呢 用户名只能包含字母.数字和下划线,并且首字母只能为字母,用户名最短不能少于6个字符,最长不能超过20个字符, 解决方案 如楼上一样.d表示匹配数字,但这个选项并非所有环境都支持.建议使用0-9表示数字. /^[a-z][a-z_0-9]{5,19}$/i 正则主体为 ^[a-z][a-z_0-9]{5,19}$ i 表示忽略大小写,如果你的环境不支持 i 选项,可将字母写完,如下所示 ^[a-zA-Z][a-zA-Z_0-9]{

js正则表达exec与match的区别说明_javascript技巧

以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用. 最近开发遇到一些需要使用正则表达式,顺便研究一下 正则表达式对象有两个定义方式:: 1.第一种定义: new RegExp(pattern, attributes);如var reg = new RegExp("abc","g") 其中pattern为表示表达式内容,如上表示匹配abc attributes:g,全局匹配,i不区分大小写,m执行多行匹配,

详解MySql基本查询、连接查询、子查询、正则表达查询_Mysql

查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SELECT语句来查询数据的.在这一章中将讲解的内容包括. 1.查询语句的基本语法 2.在单表上查询数据 3.使用聚合函数查询数据 4.多表上联合查询 5.子查询 6.合并查询结果 7.为表和字段取别名 8.使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: create table STUD