以下字符串的正确c#正则表达式是什么:
8:13-BK-99999
8也可以是2位数字08或10,总是数字
99999可以是3位到5位数,全部是数字
bk可以是任何2个字母字符,不区分大小写
由于
答案 0 :(得分:2)
答案 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
。