c# - 时间戳的正则表达式模式

标签 c# regex

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

[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}\]";

参见 RegexStorm demo

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

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

关于c# - 时间戳的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30755173/

相关文章:

java - 如何更改 java 中的正则表达式搜索以忽略大小写

c# - 为什么 gzip/deflate 压缩小文件会导致许多尾随零?

c# - 如何在 PDF 文件的文件属性的详细信息选项卡中添加关键字

c# - 带有 Caliburn.micro 的动态 DataGrid 列

Java 正则表达式 : split comma-separated values but ignore commas in quotes

regex - 为什么从 {3} 更改为 {4} 不适用于此正则表达式?

javascript - 使用正则表达式创建 HTML 标签

c# - 如何在 C# 中捕获 SQLException?

c# - 如何让我的程序生成一个新的随机数,直到它找到一个以前没有使用过的随机数?

正则表达式最后一个单词从字符串末尾开始