python正文(两)
在本文中,我读了记录和总结《Python标准库》一本书,本节课文的学习和理解。
事实上,在Python于,使用一些方法这段文字是一回事,尤其是经常使用。在一般情况下,会用String这样的类,应考虑Python个标准类了。
1.3.6 用组解析匹配
match.groups()会依照表达式中与字符串匹配的组的顺序返回一个字符串序列。
使用group()能够得到某个组的匹配。
#组解析
text='This is a text -- with punctuation.' print 'Input text: ', text regex=re.compile(r'(\bt\w+)\W+(\w+)') print 'pattern: ', regex.pattern match=regex.search(text) print 'Entire match: ',match.group(0)
print 'Word starting with t: ',match.group(1)
print 'Word after t word: ',match.group(2)
Python对基本分组的语法进行了拓展,添加了命名组(named group)。通过名字来指示组。方便能够更easy的改动模式,而不必同一时候改动使用了该匹配结果的代码。
语法:(?
P<name>pattern)
#命名组
print '-'*30
for pattern in [r'^(? P<first_word>\w+)',
r'(?P<last_word>\w+)\S*$',
r'(? P<t_word>\bt\w+)\W+(?P<other_word>\w+)',
r'(?P<ends_with_t>\w+t)\b'
]:
regex=re.compile(pattern)
match=regex.search(text)
print 'Matching "%s"' % pattern
print ' ',match.groups()
print ' ',match.groupdict()
print '\n'
使用groupdict()能够获取一个字典,它将组名映射到匹配的子串。
#更新后的test_pattern()
print '-'*30
def test_pattern(text, patterns=[]):
"""
Given the source text and a list of patters,
look for matches for each pattern within the text and print them to stdout.
"""
#look for each pattern in the text and print the results
for pattern, desc in patterns:
print 'pattern %r (%s) \n' %(pattern, desc)
print '%r' % text
for match in re.finditer(pattern,text):
s=match.start()
e=match.end()
prefix=' '*(s)
print ' %s%r%s' % (prefix,text[s:e],' '*(len(text)-e))
print match.groups()
if match.groupdict():
print '%s%s'%(' '*(len(text)-s),match.groupdict())
return test_pattern(
'abbaabbba',
[ (r'a((a*)(b*))','a followed by 0-n a and 0-n b'),]
)
版权声明:本文博主原创文章,博客,未经同意不得转载。
python正文(两)的更多相关文章
- python保留两位小数
python保留两位小数: In [1]: a = 5.026 In [2]: b = 5.000 In [3]: round(a,2) Out[3]: 5.03 In [4]: round(b,2) ...
- python将两个数组合并成一个数组的两种方法的代码
内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...
- python中有两个下划线__的是内置方法,一个下划线_或者没有下划线的可能是属性,也可能是方法,也可能是类名
python中有两个下划线__的是内置方法,一个下划线_或者没有下划线的可能是属性,也可能是方法,也可能是类名,如果在类中定义的就是类的私有成员. >>> dir(__builtin ...
- Python 求两个文本文件以行为单位的交集 并集 差集
Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...
- Python的两个爬虫框架PySpider与Scrapy安装
Python的两个爬虫框架PySpider与Scrapy安装 win10安装pyspider: 最好以管理员身份运行CMD,不然可能会出现拒绝访问文件夹的情况! pyspider:pip instal ...
- python 判断两个ip地址是否属于同一子网
python 判断两个ip地址是否属于同一子网 """ 判断两个IP是否属于同一子网, 需要判断网络地址是否相同 网络地址:IP地址的二进制与子网掩码的二进制地址逻辑&q ...
- python进行两个大数相加
python进行两个大数相加:由于int类型32位或64位都有长度限制,超出会内存溢出,无法计算,那么解决方法如下: 思路: 1.将超长数转换成字符串 2.进行长度补零,即让两个要计算的字符串长度一样 ...
- python 多线程两种实现方式,Python多线程下的_strptime问题,
python 多线程两种实现方式 原创 Linux操作系统 作者:杨奇龙 时间:2014-06-08 20:24:26 44021 0 目前python 提供了几种多线程实现方式 thread,t ...
- Python 比较两个字符串大小
python 2中,有cmp(a,b)函数,用于比较两个字符串的大小. 如 >>>a='abc' >>>b='abd' >>>print cmp( ...
随机推荐
- jquery中实现全选按钮
<html> <head> <script type='text/javascript' src='js/jquery-1.5.1.js'></scr ...
- curl订单具体解释
为windows假设用户Cygwin模拟unix环境的话,不会有带curl命令,拥有设备,它建议使用Gow为了模拟,它已经自带curl工具,直接安装之后cmd使用环境curl命令可以,由于路径是自己主 ...
- 巧妙使用Firebug插件,快速监控网站打开缓慢的原因
原文 巧妙使用Firebug插件,快速监控网站打开缓慢的原因 很多用户会问,我的网站首页才50KB,打开网页用了近60秒才打开?如何解释? 用户抱怨服务器运行缓慢,w3wp.exe 出现 CPU 10 ...
- Android开发周报:Flyme OS开源、经典开源项目解析
Android开发周报:Flyme OS开源.经典开源项目解析 新闻 <魅族Flyme OS源码上线Github> :近日魅族正式发布了MX5,并且在发布会上,魅族还宣布Flyme OS开 ...
- Laravel 中国 - 巨匠级PHP开发框架 Laravel 中国社区
http://m.baidu.com/from=844b/bd_page_type=1/ssid=0/uid=3151E6C0905477A13653132D762BB6FB/pu=sz%401320 ...
- js中点击空白区域时文本框与隐藏层的问题
当文本框获得焦点的时候,在文本框的下方显示一个浮动层. 当用户点击除了文本框和浮动层以外的网页空白处时,要隐藏浮动层. 当用户点击浮动层时,改变文本框的值. <!DOCTYPE html PUB ...
- jquery实现上传图片预览(需要浏览器支持html5)
jquery实现上传图片预览(需要浏览器支持html5) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- ecshop首页调用指定分类的所有产品(指定一级调二级)
第一种方法 第一 在/includes/lib_goods.php下增加如下代码,用过网上的直接换掉就可以 function index_get_cat_id_goods_best_list($cat ...
- jquery再体验
$(function(){ var obj = $("div[id^='channel_'][id$='_left']"); var val = obj.html(); var i ...
- OpenCV两张图片的合并
转载请注明出处..! http://blog.csdn.net/zhonghuan1992 OpenCV两张图片的合并 原理: 两张图片合并,想想图片是用一个个像素点来存储.每一个像素点有他的值. 那 ...