C# 我需要从高速公路号码中提取前缀、号码和选项后缀
我正在用C#编写一个程序,以通用形式处理公路指定: {1-2个字符}{1-3个数字}[1-4个字符] 例如:C# 我需要从高速公路号码中提取前缀、号码和选项后缀,c#,regex,C#,Regex,我正在用C#编写一个程序,以通用形式处理公路指定: {1-2个字符}{1-3个数字}[1-4个字符] 例如: I70 I70BR 美国550 美国550TRK 正则表达式可以是什么来匹配此输入,并将前缀(例如,I或US)、数字(例如,70或550)和可选后缀(例如,BR或Trk)存储在匹配数组中 问候,, Jim您需要的图案如下: ^([A-Za-z]{1,2})(\d{1,3})([A-Za-z]{0,4})$ 您说过最后一组字符在1到4个字符之间,但是您在同一个问题中表示它是可选的。我
- I70
- I70BR
- 美国550
- 美国550TRK
Jim您需要的图案如下:
^([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();
var input=“US550Trk”;
var模式=@“^([A-Za-z]{1,2})(\d{1,3})([A-Za-z]{0,4})$”;
var regex=新的regex(模式);
var results=regex.Match(input.Groups)。
OfType()。
跳过(1)。
选择(g=>g.Value)。
ToArray();
Skip(1)
之所以存在,是因为第一组始终包含整个匹配项。这是非常基本的内容-您真的能不只是阅读文档吗?