时间戳的正则表达式模式

时间:2015-06-10 11:37:49

标签: c# regex

我需要为此写一个正则表达式:

[0:00:07]

这是我的代码:

string pattern = "[[0-9]{1,1}:[0-9]{1,2}:[0-9]{1,2}]";

我得到了这样的结果:0:00:07]。如你所见,我的正则表达式错过了第一个'['。我该如何解决?

3 个答案:

答案 0 :(得分:5)

如果您需要在正则表达式中匹配文字[],则需要将其转义:

string pattern = @"\[[0-9]:[0-9]{1,2}:[0-9]{1,2}\]";

请参阅RegexStorm demo

注意,{1,1}等于没有量词(即前面的子模式将匹配一次)。

此外,应该注意的是,最终]不需要转义,因为.NET正则表达式引擎会将其视为文字(因为它无法将其解析为字符类分隔符的一部分。但是,它是保持模式明确的好主意,并在模式中出现的任何地方转义特殊字符(如果要将正则表达式移植到另一个平台,这将非常方便。)

答案 1 :(得分:3)

逃离第一个方括号。

   \[[[0-9]{1,1}:[0-9]{1,2}:[0-9]{1,2}]

这应该有效。在其他答案中也有其他表示形式。

答案 2 :(得分:2)

R < myscript.R --no-save

你需要逃避[]