2014-10-12 93 views
0

我试图在Google翻译中翻译字幕,并且一切顺利,只有一个问题,它会从时间中删除逗号,。好吧,很好。我将它粘贴在Notepad ++上,并尝试用正则表达式替换。时间格式为:使用正则表达式替换记事本++中的文本

00:00:44927 -->

,并应

00:00:44,927 -->

所以,我想在这个表达式查找内容领域::(\d){2}(\d){3}(-->)

这对更换与字段::$1,$2 -->

该搜索有效,但替换结果如下:00:00:47。看起来$1代表第一场比赛的第一场数(\d){2}4,第二场比赛(\d){3}7

为什么?

回答

1

您需要将范围量词{n}放入捕获组中。通过将它们放在捕获组之外,您告诉正则表达式引擎该组将被重复第n次​​而不是令牌\d

Find: :(\d{2})(\d{3})(-->) 
Replace: :$1,$2$3 

如果你想,你也可以使用lookaround断言来实现这一点。

Find: :\d\d\K(?=\d\d\d) 
Replace: , 
+0

它工作。不知道区别。谢谢! – DontVoteMeDown 2014-10-12 02:49:49

+0

不客气。 – hwnd 2014-10-12 03:00:31

1

你可以做

(?<=\d\d)(\d{3})(?= -->) 

,$1

DEMO

你没有捕捉\d{3}只是\d这就是为什么按照预期的正则表达式没有工作更换。

+0

也谢谢。你的解决方案很好。 – DontVoteMeDown 2014-10-12 03:10:58

+0

啊!不客气 – 2014-10-12 03:13:05