正則表達式的可選組已經與此幾個小時擺弄...解析
我試圖分析這種形式的錯誤信息:
[error] C:\Me\MyPath\myFile.scala:18:22: not found: value getaa
我能做到這一點罰款與以下正則表達式:
\[(error|warn)\]\s+(.+):(\d+):(?:\d+:)\s+(.+)$
哪個正確生成組:
error
C:\Me\MyPath\myFile.scala
18
not found: value getaa
但爲了使這個健壯,我需要使22:
部分可選(因爲某些版本的scala編譯器不輸出列號)。換句話說,它需要產生相同的組如上該字符串太:
[error] C:\Me\MyPath\myFile.scala:18: not found: value getaa
我試圖把一個問號可選的組後,但不工作 - 它攪亂了原有的組。我認爲有一些關於懶惰和貪婪的東西,我不理解。 Here is a working sample on regex101。謝謝你的幫助。
完美的作品。謝謝,並且非常清楚的解釋。 – thund