2

我正在使用 BBEdit 中的制表符分隔文件。该文件如下所示:

00:15:50;11     text1     text2
00:35:17;03     text4     text5
00:35:20;03     text6   
00:35:20;22     text7   

基本上,它有:时间码选项卡文本选项卡文本等

我想取第二行时间码并将其添加到第一行之后。我希望它看起来像这样:

00:15:50;11     00:35:17;03     text1     text2
00:35:17;03     00:35:20;03     text4     text5
00:35:20;03     00:35:20;22     text6
00:35:20;22     text7

我试过使用这段 GREP 代码:

寻找:

`(?-m)([0-9][0-9][; :][0-9][0-9][; :][0-9][0-9][; :][0-9][0-9])(.*)\r([0-9][0-9][; :][0-9][0-9][; :][0-9][0-9][; :][0-9][0-9])`

代替:

'\1\t\3\2\r\3'

我的问题是它只搜索和替换每隔一行。如果我做一个查找/替换所有,它看起来像这样:

00:15:50;11     00:35:17;03     text1     text2
00:35:17;03     text4     text5
00:35:20;03     00:35:20;22     text6
00:35:20;22     text7   

它正在跳过每隔一行。我想在数百个文件中进行搜索/替换。我想知道是否有什么可以改变的,以确保它得到每一行。

谢谢你。

4

1 回答 1

1

我拿了你的正则表达式并稍微修改了它。

诀窍是不匹配行首的时间码。所以,使用Positive Lookbehind

(?<=([0-9][0-9][; :][0-9][0-9][; :][0-9][0-9][; :][0-9][0-9]))  /*lookbehind to see if timecode exists, but dont match. 
                                                                But, the use of parenthesis makes it the first capture group.*/
(.*)
\r
([0-9][0-9][; :][0-9][0-9][; :][0-9][0-9][; :][0-9][0-9])

前,

在此处输入图像描述

后,

在此处输入图像描述

于 2015-03-03T07:50:31.087 回答