我需要为此写一个正则表达式:
[0:00:07]
这是我的代码:
string pattern = "[[0-9]{1,1}:[0-9]{1,2}:[0-9]{1,2}]";
我得到了这样的结果:0:00:07]
。如你所见,我的正则表达式错过了第一个'['
。我该如何解决?
答案 0 :(得分:5)
如果您需要在正则表达式中匹配文字[
或]
,则需要将其转义:
string pattern = @"\[[0-9]:[0-9]{1,2}:[0-9]{1,2}\]";
注意,{1,1}
等于没有量词(即前面的子模式将匹配一次)。
此外,应该注意的是,最终]
不需要转义,因为.NET正则表达式引擎会将其视为文字(因为它无法将其解析为字符类分隔符的一部分。但是,它是保持模式明确的好主意,并在模式中出现的任何地方转义特殊字符(如果要将正则表达式移植到另一个平台,这将非常方便。)
答案 1 :(得分:3)
逃离第一个方括号。
\[[[0-9]{1,1}:[0-9]{1,2}:[0-9]{1,2}]
这应该有效。在其他答案中也有其他表示形式。
答案 2 :(得分:2)
R < myscript.R --no-save
你需要逃避[]