我可以寫一個匹配一個日誌行的正則表達式。但是我的文件包含一些不同於其他日誌行的日誌行,因爲只有一些額外的字段或少數幾個字符,鍵值對會混淆在一起。正則表達式可能會略有不同的日誌行 - 火花
例如,一個日誌行: case_id=1 event_id=35654423 date=30-12-2010 time=11.02 activity=registerrequest name=Pete costs=50 rerr="-"
另一個問題:case_id=1 event_id=35654424 date=31-12-2010 time=11.07 costs=400 rerr="-" activity=examinethoroughly name=Sue rloc="-"
我的日誌模式= "^([^\s]+)\s([^\s]+)\s([^\s]+)\s([^\s]+)\s([^\s]+)\s([^\s]+)\s([^\s]+)\s([^\s]+)"
這是我在火花分組代碼:
match = re.search(LOG_PATTERN,line)
Case_ID = match.group(1)
Event_ID = match.group(2)
Date = match.group(3)
Time = match.group(4)
Activity = match.group(5)
Resource = match.group(6)
Costs = match.group(7)
Rerr = match.group(8)
此代碼將只匹配第一個日誌行。 如何編寫正則表達式,以便我可以將它們組合成火花而不忽略任何日誌行?
一句話:有些值在引號內,你使用'[^ \ s] +' - 這會在匹配中包含引號 - 可以嗎? –
沒錯。 – kaks