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( ...
随机推荐
- C++ 直方图匹配算法代码
/*-------------------------------------------------------------------------*/ // 函数名称: histeq() // 传 ...
- 黑马程序员:Java基础总结----类加载器
黑马程序员:Java基础总结 类加载器 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个 ...
- tomcat各版本和jsp、jstl、servlet的依赖关系(转)
Servlet / JSP / Tomcat Version Servlet/ JSP Tomcat 2.5/2.1 6.0.18 2.4/2.0 5.5.27 2.3/1.2 4.1.3 ...
- Everything You Wanted to Know About Machine Learning
Everything You Wanted to Know About Machine Learning 翻译了理解机器学习的10个重要的观点,增加了自己的理解.这些原则在大部分情况下或许是这样,可是 ...
- currentstyle和getComputedStyle兼容问题
currentStyle:获取计算后的样式,也叫当前样式.终于样式. 长处:能够获取元素的终于样式,包含浏览器的默认值,而不像style仅仅能获取行间样式,所以更经常使用到. 注意:不能获取复合样式如 ...
- libevent book——event | Gaccob的博客
libevent book——event | Gaccob的博客 libevent book——event 发表于 2013 年 2 月 22 日 由 gaccob 原文地址:http://www.w ...
- redis做RDB时请求超时case
近期在排查redis做rdb时会有部分请求超时的case.初步推断是我们redisserver上开启了THP(Transparent Huge Pages). 1) Linux本身的 ...
- 【Swift】—— 中国课程
Apple宣布更换oc武器语言 Swift ,在牛叉的中国开发者社区9几天之内,以完成.这是福音许多中国的开发商啊,兴奋的发现之后,写存储在日志,马上防止忘记: GitHub开源项目:<The ...
- hdu1042(大数模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 在网上找了个大数模板方便以后用得到. #include<iostream> #inc ...
- LA 3027 Corporative Network 并查集记录点到根的距离
Corporative Network Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu [S ...