2014-10-12 106 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