我需要为此编写一个正则表达式模式:
[0:00:07]
这是我的代码:
string pattern = "[[0-9]{1,1}:[0-9]{1,2}:[0-9]{1,2}]";
我得到了这样的结果:0:00:07]
。如您所见,我的正则表达式遗漏了第一个 '['
。我该如何解决?
最佳答案
如果您需要在正则表达式中匹配文字 [
或 ]
,您需要将其转义:
string pattern = @"\[[0-9]:[0-9]{1,2}:[0-9]{1,2}\]";
请注意,{1,1}
等于没有量词(即前面的子模式将被匹配一次)。
另外,应该注意最后的 ]
不需要转义,因为 .NET 正则表达式引擎会将其视为文字(因为它无法将其解析为字符类定界符的一部分。但是, 保持你的模式明确是个好主意,并且在模式中出现的任何地方转义特殊字符(如果你想将你的正则表达式移植到另一个平台,这将非常方便)。
关于c# - 时间戳的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30755173/