2017-07-19 84 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

相關問題