正则表达式在Notepad ++中将非空白行与制表符组合在一起

时间:2017-04-22 12:52:09

标签: regex notepad++

提前道歉。我之前已经问过我的问题,也回答了问题(Regex how to match all end of line except blank line?)。我认为答案并不完整,遗漏了一些明显的部分(遗憾的是对我来说不太明显)。与OP完全一样,我想将所有连续的非空行与制表符组合在一起。

输入:

AAAAAA
BBBBBB
CCCCCC

DDDDDD
EEEEEE

FFFFFF
GGGGGG
HHHHHH

预期产出:

AAAAAA  BBBBBB  CCCCCC

DDDDDD  EEEEEE

FFFFFF  GGGGGG  HHHHHH

/(?<!\s)$/mg(?<=[^\s])$已被建议使用正则表达式,但替换字符串应该是什么?

2 个答案:

答案 0 :(得分:1)

您需要使用

查找内容\S\h*\K\R(?!\R)
替换为\t
正则表达式 ON

<强>详情:

  • \S - 非空白字符(检测到非空行)
  • \h* - 0+个水平空格(可能该行以某些非垂直空格结尾)
  • \K - 匹配重置操作符,丢弃目前为止匹配的文本
  • \R - 换行符(CR,LF或CRLF)
  • (?!\R) - 没有跟着另一个换行符(避免加入空行!)。

查看截图结果:

enter image description here

答案 1 :(得分:0)

您可以使用

  • armv7k作为查找内容部分和
  • (\S)\R作为替换为
替换对话框的

<强>解释

  • \1\t表示NotWhitespace,\S表示lineending
  • parens将行内的最后一个非空格字符存储到\R
  • 替换使用此和\1这是制表符可以摆脱不受欢迎的换行符