2016-09-16 179 views
1

在Notepadd ++中使用正則表達式查找/替換如果行以'章節'開頭,如何從行刪除所有空格?從特定字詞開始的行中刪除所有空格

示例文本:

CHAPTER A B C 
Once upon a time. 

我想直到結束:

CHAPTERABC 
Once upon a time. 

不正確的代碼是一樣的東西:

(?<=CHAPTER)()(?<=\r\n) 

所以 '第三章' 需要保持和搜索應停止在第一個換行符。

+2

你的環境是什麼?嘗試'(?:^ CHAPTER |(?!^)\ G)\ S * \ K \ h +'。你有什麼樣的文字樣子? –

+0

@WiktorStribiżew我已經更新了這個問題。你的建議效果很好 - 你可以添加這個作爲答案,並解釋一下它是如何工作的? – user500665

回答

2

你可以使用一個\G基於正則表達式只匹配以CHAPTER開始行,然後,但省略了匹配的非空白塊,只刪除水平空白僅匹配連續的非空白和空白塊到換行符:

(?:^CHAPTER|(?!^)\G)\S*\K\h+ 

詳細

  • (?:^CHAPTER|(?!^)\G) - CHAPTER在一行的開始(^CHAPTER)或(|)以前的成功匹配((?!^)\G的端部,如\G也可以匹配行的開始,我們使用retricting負先行)
  • \S* - 零個或多個非空白符號
  • \K - 匹配復位操作迫使正則表達式引擎忽略至今(因此,我們不會刪除CHAPTER或任何非空白塊)
  • \h+匹配的文本 - 只
水平空白(1個或多個)

enter image description here

相關問題