2017-07-19 87 views
0

我通过日志数据搜索,并试图解析只是一个数据的子后停止正则表达式如何第一场比赛

样本串解析:

test = 'promo_multiplier ]</b> from <i>[ 1.0000 ]</i> to [ 1.25 ] <br /> change in <b>[ commission_rate ]</b> from <i>[ 0.00 ]</i> to [ 10 ]' 

我现在所拥有的代码是

match = re.search('promo_multiplier.*from.*to.*?]', test).group(0) 

这将返回整个字符串直到最后]字符

如何复位J乌斯直到第]后“到”使输出看起来像

promo_multiplier ]</b> from <i>[ 1.0000 ]</i> to [ 1.25 ] 

回答

0

您必须添加一个“?”后表达的贪婪的一部分,就像这样:

match = re.search('promo_multiplier.*?from.*?to.*?]', test).group(0) 
print(match) 

会是:

'promo_multiplier ]</b> from <i>[ 1.0000 ]</i> to [ 1.25 ]' 
0

如果你的意思是只捕获的第一场比赛,那么你需要一个非贪婪(或懒惰)基数为第一组

(.+?): (.+) 

参见other answer

相关问题