BBEdit GREP查找替换

时间:2015-02-08 17:36:38

标签: replace find line bbedit

我正在使用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代码:

FIND:

`(?-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])`

REPLACE:

'\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   

它正在跳过其他所有行。我想在几百个文件中搜索/替换所有内容。我想知道是否有一些东西我可以改变以确保它得到每一行。

谢谢。

1 个答案:

答案 0 :(得分: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])

前,

enter image description here

后,

enter image description here