我正在格式化一些聊天记录,我想在以除参与者姓名之外的任何内容开头的每一行之前添加 ||。
例子:
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|你好
现在看起来确实如此 - 我尝试修改您的方法以使其工作,但我无法完全实现。我到底需要更改什么?