首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BBEdit GREP查找替换

BBEdit GREP查找替换
EN

Stack Overflow用户
提问于 2015-02-09 01:36:38
回答 1查看 1.3K关注 0票数 2

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

代码语言:javascript
复制
00:15:50;11     text1     text2
00:35:17;03     text4     text5
00:35:20;03     text6   
00:35:20;22     text7   

基本上,它有:时间码标签文本标签文本等

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

代码语言:javascript
复制
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代码:

查找:

代码语言:javascript
复制
`(?-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])`

替换:

代码语言:javascript
复制
'\1\t\3\2\r\3'

我的问题是,它只搜索和替换每隔一行。如果我执行一个find/replace all,它看起来像这样:

代码语言:javascript
复制
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   

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

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-03 15:50:31

我采用了您的正则表达式,并对其进行了稍微修改。

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

代码语言:javascript
复制
(?<=([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])

在此之前

之后,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28397085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档