Python在字符处理方面拥有很强大的优势,其中正则表达式是其中的精髓。可以利用正则表达式对字符串进行特定规则的查找,分割。本文对python在正则表达式方面的应用做了一个基本的总结。python的re模块就是专门用于正则的模块,该模块主要有两部分组成。第一部分是正则匹配的规则,第二部分是re的相关函数。在引用这个模块之前,需要先导入该模块。
- 正则匹配特殊字符
匹配规则需要知道一些常用匹配字符的定义,常见的匹配字符归纳如下:
| 字符 | 功能 |
| . | 匹配除换行符"/n"外的所有字符 |
| * | 匹配前面规则0次或多次 |
| + | 匹配前面规则1次多多次 |
| | | 或规则,表示满足其一就匹配,例如:dog|cat表示匹配"dog"和"cat" |
| ? | 匹配前面规则0次或1次 |
| ^ | 匹配字符串的开头 |
| $ | 匹配字符串的结尾 |
| [] | 字符集合,例如[abc],表示"a","b","c"都可以匹配 |
| () | 组,通常把相关的匹配规则写在组里 |
| /d | 匹配一个数字,/D表示取反,匹配一个非数字 |
| /w | 匹配所有英文字母和数字,/W是/w的取反 |
| /s | 匹配空格符,制表符,回车符等表示空格意义的字符 |
| (?:) | 重复字符匹配,例如(?:ab)表示匹配字符中重复的ab |
2. re常用函数- findall(pattern,string,flags=0)
在string中查找pattern,返回结果是一个列表,存放符合规则的字符串,若没有找到找到符合规则的字符串,返回一个空列表。
- compile(pattern, flags=0)
将正则规则编译成一个pattern对象,以供后续使用。返回一个pattern对象。
- match(pattern,string,flags=0)
用pattern去匹配string的开头部分,若成功,返回一个match object, 不成功则返回一个None.
- search(pattern,string, flags=0)
用pattern去匹配string,若成功,返回一个match object, 不成功则返回一个None
- split(pattern, string, flags=0)
用pattern规则在string中查找匹配的字符串,并用该字符作为分界,分割string,f返回一个列表。
推荐阅读:Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htmPython文件处理:读取文件 http://www.linuxidc.com/Linux/2013-08/88496.htm如何发布自定义的Python模块 http://www.linuxidc.com/Linux/2013-08/88495.htmPython爬虫多线程抓取代理服务器 http://www.linuxidc.com/Linux/2013-07/87289.htm