正则表达式为此字符串格式

时间:2014-03-03 17:09:08

标签: c# regex

以下字符串的正确c#正则表达式是什么:

8:13-BK-99999

8也可以是2位数字08或10,总是数字

99999可以是3位到5位数,全部是数字

bk可以是任何2个字母字符,不区分大小写

由于

3 个答案:

答案 0 :(得分:2)

这应该这样做:

\d{1,2}:\d{2}-[A-Za-z]{2}-\d{3,5}

工作正则表达式示例:

http://regex101.com/r/lE4sP8

答案 1 :(得分:1)

看到您要求提供C#示例,可以选择Case Insensitive作为RegexOptions之一。

我认为13也是2位数。

using System.Text.RegularExpressions;

...

Regex regX = new Regex(
    @"(\d{1,2}):(\d{1,2})-([a-z]{2})-(\d{3,5})",
    RegexOptions.IgnoreCase
);

if( regX.IsMatch( inputString ) )
{
    // Matched
}

...

答案 2 :(得分:0)

模式:

(\b(8|08|10):\d{2}-[a-zA-Z]{2}-\d{3,5}\b)

代码:

using System;
using System.Text.RegularExpressions;
namespace myapp
{
  class Class1
    {
      static void Main(string[] args)
        {
          String sourcestring = "source string to match with pattern";
          Regex re = new Regex(@"(\b(8|08|10):\d{2}-[a-zA-Z]{2}-\d{3,5}\b)",RegexOptions.IgnoreCase);
          Match m = re.Match(sourcestring);
          for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++)
            {
              Console.WriteLine("[{0}] = {1}", re.GetGroupNames()[gIdx], m.Groups[gIdx].Value);
            }
        }
    }
}

示例:http://www.myregextester.com/?r=bbf584e8

其他示例似乎没有考虑以超过两位数开头的数字,或以超过五位结尾的数字,它们只是抓住它们之间的内容。我认为你不希望00:11-00-aa-00000取自000:11-00-aa-000000