给定一个包含多个内容实例的文本文档:
XXXX
random number of lines with random text
other random text
more random text
random text
'blank line'
我想删除 XXXX 和空白行之前的行中的随机文本之间的所有内容,并在随机文本之前插入一个逗号,所以它看起来像这样:
XXXX,random text
'blank line'
如何使用单个命令执行此操作?
我目前在 Windows 10 上使用 sublime text 3 和 notepad++,但这个问题与平台无关。我会使用任何有用的东西,谢谢!
假设“事物”和“东西”总是相同的,你可以使用这个:
查找内容:
XXXX\r\nthings\r\nstuff.*?\r\n(.*?)\r\n\r\n
替换为:
XXXX, \1\r\n\r\n
在哪里:
\r\n\
: 代表 Windows 结束行(回车,换行).*?
: 0 个或多个字符,非贪婪搜索()
: 定义一个组\1
:匹配组的内容。这是我的测试用例:
这是单击全部替换后的结果:
使用记事本:
XXXX\K\R(^[^'].+$\R){1,}
\r\n
前
后
感谢 reddit 的 scoberry5:
以下是我认为你想要的部分:
XXXX 一些字符,包括换行符,任意次数(尽可能少)一个或多个非换行符(尽可能多)行尾,后跟一个 we-are-at-the-end-of-line 标记
您应该可以将 (XXXX).*?([^\n]+)\n$ 替换为 \1,\2\n ,如https://regex101.com/r/bldhDZ/1