正则表达式

正则表达式接触过好多次,以前用C写代码的时候对文本的处理不多,基本没怎么用过。工作了以后对于正则表达式才逐步的用了起来。但是到目前为止,公司里面不少同事对于正则表达式具体怎么用的还是不清楚,也挺让人无奈的。

我好好研究正则表达式是在出差的时候学会的,当时有个数据配置的规则,一线和家里的数据匹配方式正好是反过来的,使用的字符也不一样。当时实在是没办法了,把资料搬出来,结合百度,然后好好学习了下,算是知道怎么用了。

这里推荐notepad++这个编辑器,里面的正则表达式查找功能用来练习正则表达式实在是太棒了。

NOTEPAD++的搜索功能中带有正则表达式匹配,可以查找替换,筛选。还是挺不错的。

1 匹配单行记录

^.+$        解析:^用来匹配行首, "."可以匹配除了换行的任意字符,"+"表示匹配前面字符1个或无限个,"$"表示行尾,轻松搞定。

2 Python中的正则表达式使用

Python中自带的re模块还是挺好用的,结合使用经验,目前看findall函数是相对通用的函数,能够将指定字符串中所有的记录都摘选出来放到一个数组中。

1 >>> regex_list1 = re.compile ( r'\baaa\b' )
2 >>>
3 >>> tmp_string = 'aaa 1234aaa2342 bacaaa'
4 >>>
5 >>> print regex_list1.findall ( tmp_string )
6 ['aaa']
7 >>> regex_list1 = re.compile ( r'[1-9]{3}aaa[1-9]{2}' )
8 >>> print regex_list1.findall ( tmp_string )
9 ['234aaa23']

先定义一个正则表达式的字符串,咋设计根据自己的需求实现。

然后调用re.compile()函数对这个字符串进行编译,函数的返回结果就是一个正则表达式的对象。

然后就可以通过这个正则表达式对象的功能函数findall对字符串进行匹配和过滤。

匹配效果如上图所示。用起来还是很简单的,只要能设计正确的正则表达式即可。

 

posted @ 2017-06-05 22:36  Matrix_R  阅读(257)  评论(0编辑  收藏  举报