假如你正在开发手机的应用,比如从云中心那里获取到一串黑名单的电话本号码,然而这些电话本的号码是作为一个文本文件返回来的,需要把这些一行一行的文本分析成电信供应商、电话号码、备注信息、标记的次数,其实这个过程就是把序列化的信息转换为结构化的信息,这样才可更方便处理,比如把电话号码拿出来作为拦截的比较。例子:text = """18701808546 1位用户诈骗号码 (2015-08-24) 153...
分类:
其他好文 时间:
2015-09-07 21:18:38
阅读次数:
196
在Python里,没有与scanf()直接等同的功能函数,因此需要格式化输入,就需要使用正则表达式的功能来实现,并且正则表达式的功能比scanf()更加灵活,功能更加强大,下面就来列出一些等同的表达:scanf()格式字符串正则表达式%c.%5c.{5}%d[-+]?\d+%e,%E,%f,%g[-+]?(\d+(\.d*)?|\.\d+)([eE][-+]?\d+)?%i[-+]?(0[xX][...
分类:
其他好文 时间:
2015-09-05 09:53:54
阅读次数:
184
match对象是通过正则表达式匹配成功之后返回的对象,如果不成功也会返回,不过其布尔值为False。因此,判断是否匹配成功,只要判断match对象的布尔值就可以,简单的就是使用if语句来判断。例子:print('re.split')result = re.split('\W+','Cai, cai, cai.')if result: print(result)match对象支持下面的方法和属...
分类:
其他好文 时间:
2015-08-29 09:52:05
阅读次数:
277
现在我们开始一个一个例子学习,把学习到的正则表达式进行综合使用。这个例子使用正则表达式来检查5张扑克牌是否有效,为了显示更好看,先写一个输出函数:def displaymatch(match): if match is None: return print(None) return print('' % (match.group(), match.groups()))假定...
分类:
其他好文 时间:
2015-08-29 09:51:36
阅读次数:
154
在本模块内主要包括函数、常量和异常。有一些函数是为简单使用,而减少一些特征。在大多数的正规的应用程序里,都是采用编译方式来使用正则表达式。 re.compile(pattern, flags=0)编译一个正则表达式,并生成一个正则表达式对象,而这个对象可以使用方法match()和search()来进行匹配。编译正则表达式的选项,可以通过flags来设置,这些参数可以通过或(|)的方式来进行组合。这...
分类:
其他好文 时间:
2015-08-09 08:24:28
阅读次数:
232
Python解释器的探讨:第一部分函数对象 最近三个月,我和Ned Batchelder花费了大量时间在开发byterun。这个项目byterun(https://github.com/nedbat/byterun)是使用python开发的python字节码的解释器。开发解释器byterun过程中,让我学习到很多东西,以及带来很大的乐趣。在本文系列里,我将带你来体验一下我的开发乐趣,以及使用byt...
分类:
编程语言 时间:
2015-08-07 20:00:13
阅读次数:
96
Python编译器实现内幕:添加一个新语句本文尝试理解Python前端的编译实现内幕,如果仅仅是读取文档,或者查看Python的实现代码,会让人感觉迷迷糊糊的,所以我的想法是动手来做一些事情:添加一个新语句until到Python编译器实现里。 所有跟本文相关的代码,都是使用Python3.4.3版本的代码,可以从CSDN的代码托管里找到,连接如下:https://code.csdn.net/ca...
分类:
编程语言 时间:
2015-08-06 09:32:54
阅读次数:
346
(?(id/name)yes-pattern|no-pattern)先判断id或name是否存在,如果存在就使用yes-pattern规则来匹配;如果不存在,就使用no-pattern匹配。并且no-pattern是可选的,可以不存在。例子:print('(|$)')m = re.findall(u'(|$)', u' a@t3.cn> a@t4.cn')if m: ...
分类:
其他好文 时间:
2015-08-02 10:19:04
阅读次数:
163
(?!...)向前识别不等于指定字符就匹配,当下一个单词不等于...时就识别出来括号前面指定的单词。比如Isaac(?!Asimov),就会这样判断,当紧跟着Isaac后面不是单词Asimov时,就把它匹配出来。例子:print('Isaac(?!Asimov)')print(u'abcdAsimovIsaacttttt')m = re.findall(u'Isaac(?!Asimov)', u'...
分类:
其他好文 时间:
2015-07-26 11:15:40
阅读次数:
163
(?...)这个语法规则是前面的扩展,主要在问号位置可以替换为特定的字符。例子:print('(?...)')m = re.findall(r'(a...)', r'abcdefaghijk')if m: print(m) 输出结果如下:(?...)['abcd', 'aghi'](?#...)括号内容注释掉,不起作用。在正则表达式分析时,跳过这些规则。例子:print('(?#a)')m ...
分类:
其他好文 时间:
2015-07-25 10:41:25
阅读次数:
208