【问题标题】:C# matching regex to HHMMSSC# 匹配正则表达式到 HHMMSS
【发布时间】:2013-07-30 13:36:56
【问题描述】:

我正在使用 VS 2010 数据生成器根据正则表达式生成测试字符串。

目前我很难使用适当的模式来生成HHMMSS 时间字符串。

到目前为止我有这个,但它并不完全准确:([01]?[0-9]|2[0-3])[0-5][0-9][0-5][0-9]

例如,一组所需的设置如下:212013

【问题讨论】:

  • 你的问题的文字让人不清楚 - 你的输出字符串是否有冒号分隔符?
  • 啊,我在测试中留下了冒号。为了清楚起见,不应该有分隔符。正如示例所示。
  • 那么“不完全准确”是什么意思?它做错了什么?
  • 好吧,从下面的正确答案来看,我不需要 ?。
  • @Lee 我已经添加了一个简短的行来解释为什么 ? 会导致您出现问题。

标签: c# .net regex


【解决方案1】:

以下内容应满足您的格式要求:

([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9]

([01][0-9]|2[0-3]) 部分涵盖 00 到 23,而[0-5][0-9] 部分涵盖 00 到 59。

在您的原始文件中,? 将前导零或一设为可选,因此可能会生成无效的五位数字。

【讨论】:

    【解决方案2】:

    如果你不关心正则表达式,这样怎么样:

    var r = new Random();
    DateTime.FromOADate(r.NextDouble()).ToString("HHmmss")
    

    【讨论】:

    • OP 正在使用代码生成器。我假设它的输入是一个正则表达式,而不是一行代码。
    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2016-01-15
    • 2012-03-09
    相关资源
    最近更新 更多