2016-12-07 45 views
0

我想從一個文本文件中提取一組特定的字符串與一千行。該文件具有空行,這對於保存至關重要。我設法匹配所有的字符串,但我沒有設法保留它們,同時刪除可能在同一行中的所有其他內容。我嘗試過負向預測 - 它們只能匹配每行模式的一個實例。正則表達式提取字符串,保持行完好

我在使用SublimeText,但我也可以使用任何命令行正則表達式解釋器。

我的數據是這樣的:

.... 
Some Text, more text 
[empty line] 
Silberdruck 
Golddruck, Silberdruck 
[empty line] 
Some Text, Silberdruck 
Golddruck some text, Silberdruck 
... 

我需要把所有的話方含* DRUCK,因此數據應該是這樣的:

....  
[empty line] 
[empty line] 
Silberdruck 
Golddruck, Silberdruck 
[empty line] 
Silberdruck 
Golddruck Silberdruck 
.... 

模式可能會出現每行多次。

感謝您的幫助!

+0

嘗試'(\ h * \ w * druck \ b [[:punct:] \ h] *)| .' - >'$ 1'在昇華 –

+0

謝謝,這工作正常! – kbecker87

回答

0

您可以使用

(\h*\w*druck\b[[:punct:]\h]*)|. 

而且隨着$1

詳細取代:

  • (\h*\w*druck\b[[:punct:]\h]*) - 第1組捕捉
    • 01的序列- 0+水平空格
    • \w* - 0+字字符
    • druck\b - druck遵循的字邊界
    • [[:punct:]\h]* - 零個或多個標點符號或水平的空白
  • | - 或
  • . - 除換行符之外的任何字符char
+0

很高興爲你效勞。請考慮通過點擊左側的✓接受答案(請參閱[如何接受SO答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)) 。 –