我需要从高速公路号码提取前缀,号码和选项后缀



我正在用c#编写一个程序,以一般形式处理高速公路指定:

{1-2字符}{1-3数字}[1-4字符]

例如:

    ——
  • I70BR
  • US550
  • US550Trk

匹配这个输入并存储前缀的正则表达式可能是什么?例如:I或US),数字(例如:, 70或550),以及可选后缀(例如。

问候,吉姆

您需要的样式如下:

^([A-Za-z]{1,2})(d{1,3})([A-Za-z]{0,4})$

你说最后一组在1到4个字符之间,但是你在同一个问题中说它是可选的。我选择了后一个选项,因为并非您提供的所有输入都有后缀。

示例用法:

var input = "US550Trk";
var pattern = @"^([A-Za-z]{1,2})(d{1,3})([A-Za-z]{0,4})$";
var regex = new Regex(pattern);
var results = regex.Match(input).Groups.
    OfType<Group>().
    Skip(1).
    Select(g => g.Value).
    ToArray();

Skip(1)在那里是因为第一组总是包含整个匹配。

最新更新