2017-06-01 56 views
0

我試圖創建一個正則表達式來篩選文本文件(Notepad ++)中的信息,但只有當該字符在名稱中有一個「the」。如何匹配在特定行中包含特定單詞的所有文本組?

我現在的表情:\\{[\r\n]+id:(.\*?)+name:\s+(\bthe\b)(.*?)[\r\n]\\}

{ 
id:  1 
locID: A 
tStart: 17:10:00 
tEnd: 17:35:00 
name: the man 45 
text: Lorum Ipsum 
} 
{ 
id:  2 
locID: A 
tStart: 17:11:00 
tEnd: 17:12:00 
name: Frank 
text: Lorum Ipsum 
} 
{ 
id:  3 
locID: A 
tStart: 17:11:00 
tEnd: 17:14:00 
name: Frank 
text: Lorum Ipsum 
} 
{ 
id:  4 
locID: B 
tStart: 17:51:00 
tEnd: 17:56:00 
name: the woman 2 
text: Lorum Ipsum 
} 
{ 
id:  5 
locID: A 
tStart: 17:11:00 
tEnd: 16:11:00 
name: the man with the golden gun 
text: Lorum Ipsum 
} 
{ 
id:  6 
locID: C 
tStart: 17:11:00 
tEnd: 17:11:00 
name: the woman with the dragon tattoo 
text: Lorum Ipsum 
} 
{ 
id:  7 
locID: A 
tStart: 17:15:00 
tEnd: 17:15:00 
name: Jo 
text: Lorum Ipsum 
} 

我想是隻得到

{ 
id:  1 
locID: A 
tStart: 17:10:00 
tEnd: 17:35:00 
name: the man 45 
text: Lorum Ipsum 
} 
{ 
id:  4 
locID: B 
tStart: 17:51:00 
tEnd: 17:56:00 
name: the woman 2 
text: Lorum Ipsum 
} 
{ 
id:  5 
locID: A 
tStart: 17:11:00 
tEnd: 16:11:00 
name: the man with the golden gun 
text: Lorum Ipsum 
} 
{ 
id:  6 
locID: C 
tStart: 17:11:00 
tEnd: 17:11:00 
name: the woman with the dragon tattoo 
text: Lorum Ipsum 
} 

誰能告訴我什麼,我需要做的跳過線的休息嗎?

我的當前設置返回所有內容,並且Frank id:2Frank id:3the woman 2 id:4

謝謝米克馬庫薩。

解決方案:{[^}] *名稱:[^}] * \的意見書\ B [^}] * \}

+0

顯示源從您分析數據。 – tilz0R

回答

2

的否定的字符類[^}]速度一切並避免被鉤住上換行符。 *可能是貪婪的,因爲它們將在name:,the}上停止。

模式(Demo Link):

{[^}]*name:[^}]*\bthe\b[^}]*} 

編輯(逃避花括號版):

\{[^}]*name:[^}]*\bthe\b[^}]*\} 
+0

謝謝!這工作! 唯一需要注意的是,由於自動生成{[^}] *名稱:[^}] * \ bthe \ b [^}] * \},您的答案不慎遺漏了斜線。 – Peter

相關問題