2014-06-10 263 views
1

我有以下列格式的某些數據的第二次出現:正則表達式來替換字符

MM:SS:MMM其中MM is minutesss is secondsmmm is 3 digit milliseconds,如:

05:23:236 

我試圖用點替換第二次冒號:

05:23.236 

我想使用regex模式做在記事本等++編輯器裏的更換,我想出了這個 正則表達式來我的表情搭配:

\d{1,2}:\d{1,2}:\d{1,3} 

但我現在該怎麼可以只得到second occurrence of colon這樣我就可以dot取代它呢?

編輯:請注意,我的工作中的數據可以來用1-2位數分鐘,1-2位第二和1-3數字毫秒

+0

您使用何種語言::(\d{1,3})$

替換爲? –

回答

2

使用這個表達式:

:(\d{1,3})$ 

,以取代:

什麼上面
.$1 

正在做的是選擇最後:接着是毫秒1-3位數。

DEMO

2

試試這個:

string pattern = @":(?=\d{3})"; 
    string input = "your string"; 
    string replacement = "."; 
    Regex rgx = new Regex(pattern); 
    string result = rgx.Replace(input, replacement); 
1

您正則表達式是好的,你只需要做的組,然後再次調用它們替換它們:

選擇:

(\d{1,2}:\d{1,2}):(\d{1,3}) 

替換:

$1\.$2 
0

查找:根據您的正則表達式的味道.\1.$1