如何在不以 [term1] 或 [term2] 开头的每一行开头添加符号?

如何在不以 [term1] 或 [term2] 开头的每一行开头添加符号?

我正在格式化一些聊天记录,我想在以除参与者姓名之外的任何内容开头的每一行之前添加 ||。

例子:

Bob: hi
hey
Martha: yeah hi

我想在第二行之前添加 ||,使其看起来像这样:

Bob: hi
||hey
Martha: yeah hi

有什么方法可以使用查找和替换对整个 30,000 多行的文档执行此操作吗?

答案1

根据评论重写

  • Ctrl+H
  • 找什么:^(?![^|\r\n]+\|)
  • 用。。。来代替:||
  • 检查环绕
  • 检查正则表达式
  • Replace all

解释:

^              # beginning of line
  (?!          # negative lookahead, make sure we haven't after:
    [^|\r\n]+  # 1 or more any character that is not pipe or linebreak
    \|         # a pipe
  )            # end lookahead

替代品:

||          # double pipe

鉴于:

Bob Stewart|1494043962207|hi
hey
Martha|1494044016655|yeah hi

给定示例的结果:

Bob Stewart|1494043962207|hi
||hey
Martha|1494044016655|yeah hi

屏幕截图

在此处输入图片描述

答案2

使用正则表达式^(Bob|Martha).*$并将其替换为,然后将(作为扩展替换)$0\r\n||替换为。您也可以一步完成此操作。||\r\n||

这对后续行不起作用。例如:

Bob: Hi,
are you there?
I only need minute!

只会将 || 放在第二行前面。构造否定可能相当困难。

答案3

我应该在我的示例中更准确地说明它的格式。

鲍勃|1494043962207|嗨,玛莎|1494044016655|你好

现在看起来确实如此 - 我尝试修改您的方法以使其工作,但我无法完全实现。我到底需要更改什么?

相关内容