菜鸟求助 正则匹配
def generate_logformat_regex(self, logformat):""" Function to generate regular expression to split log messages
"""
headers = []
splitters = re.split(r'(<[^<>]+>)', logformat)
regex = ''
for k in range(len(splitters)):
if k % 2 == 0:
splitter = re.sub(' +', '\s+', splitters[k])
regex += splitter
else:
header = splitters[k].strip('<').strip('>')
regex += '(?P<%s>.*?)' % header
headers.append(header)
regex = ('^' + regex + '$')
return headers, regex
这个代码中 splitter = re.sub(' +', '\s+', splitters[k]) 这行我单独测试时显示\s匹配错误,网上的例子第二个参数都是具体数值,这里\s+所代表的意思是什么?
regex += '(?P<%s>.*?)' % header 这行代码的意思是将匹配放进header中并添加到regex中是么?