Regex 用于替换字符第二次出现的正则表达式
我有以下格式的一些数据: MM:ss:mmm其中Regex 用于替换字符第二次出现的正则表达式,regex,replace,Regex,Replace,我有以下格式的一些数据: MM:ss:mmm其中MM为分钟,ss为秒,mmm为3位毫秒,如: 05:23:236 我试图用一个点替换第二个冒号: 05:23.236 我想用一个regex模式在记事本++之类的编辑器中进行替换,我想到了 此正则表达式与我的表达式匹配: \d{1,2}:\d{1,2}:\d{1,3} 但是现在我怎么才能只得到第二次出现的冒号,这样我就可以用点替换它了 编辑:请注意,我处理的数据可能是1-2位数的分钟、1-2位数的秒和1-3位数的毫秒 :(\d{1,3})$
MM为分钟
,ss为秒
,mmm为3位毫秒
,如:
05:23:236
我试图用一个点替换第二个冒号:
05:23.236
我想用一个regex
模式在记事本++之类的编辑器中进行替换,我想到了
此正则表达式与我的表达式匹配:
\d{1,2}:\d{1,2}:\d{1,3}
但是现在我怎么才能只得到第二次出现的冒号,这样我就可以用点替换它了
编辑:请注意,我处理的数据可能是1-2位数的分钟、1-2位数的秒和1-3位数的毫秒
:(\d{1,3})$
替换为:
.$1
上面所做的是选择最后一个:
,后面是毫秒加1-3位数
试试这个:
string pattern = @":(?=\d{3})";
string input = "your string";
string replacement = ".";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
您的正则表达式很好,您只需进行分组,然后通过再次调用来替换它们: 选择:
(\d{1,2}:\d{1,2}):(\d{1,3})
替换:
$1\.$2
查找::(\d{1,3})$
替换为:
\1
或$1
取决于您的正则表达式风格您使用的是什么语言?