2016-09-16 168 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

相关问题