re是Python的正则表达式模块,在此记录实际开发过程中的使用。

正则表达式的最佳实践是使用re.compile方法编译后使用,效率会更好


1、re.search()

example:

TS 1423031065.017865025 2015-02-04 14:24:25  14:24:25 up 82 days, 23:51,  2 users,  load average: 0.02, 0.03, 0.10


匹配 TS开头跟一个空格后跟若干个数字。

>>> import re
>>> str="TS 1423031065.017865025 2015-02-04 14:24:25  14:24:25 up 82 days, 23:51,  2 users,  load average: 0.02, 0.03, 0.10"
>>> import re
>>> prog = re.compile(r'^TS \d+')
>>> m = prog.search(str)
>>> m.group(0)
'TS 1423031065'


2、re.split()

拆分字符串是很常见的需求,通常使用split方法,但是一次指定多个分割符,split方法不支持,只能用re

的split方法了

example:

TS 1423031065.017865025 2015-02-04 14:24:25  14:24:25 up 82 days, 23:51,  2 users,  load average: 0.02, 0.03, 0.10

以空格和.拆分上面的字符串

>>> str="TS 1423031065.017865025 2015-02-04 14:24:25  14:24:25 up 82 days, 23:51,  2 users,  load average: 0.02, 0.03, 0.10"
>>> re.split(r'\s+|\.',str)
['TS', '1423031065', '017865025', '2015-02-04', '14:24:25', '14:24:25', 'up', '82', 'days,', '23:51,', '2', 'users,', 'load', 'average:', '0', '02,', '0', '03,', '0', '10']