正则表达式从字符串中提取项目

时间:2012-03-20 15:39:48

标签: c# .net regex

飞行员可以将他们的航班路线输入文本框:

KRIC-KLAX - IAD / I69

这是极端的,因为它通常是KRIC-KLAX-KIAD-I69。关键是每个“修复”由非a-z或0-9个字符分隔。我需要从上面的字符串中提取修复程序,以提出一系列修复程序:

KRIC,KLAX,IAD,I69

任何人都知道正则表达式,最好用.NET C#来实现这个目的吗?

谢谢。

3 个答案:

答案 0 :(得分:2)

  var result = Regex.Matches(input, @"\w+")
      .OfType<Match>()
      .Select(_ => _.Value)
      .ToArray();

甚至更简单:

  var result = Regex.Split(input, @"\W+").ToArray();

正如@TLS正确指出的那样,如果下划线也应被视为分隔符,那么你可能会使用[a-zA-Z0-9]+

答案 1 :(得分:2)

     var matches = Regex.Matches(“KRIC-KLAX - IAD / I69”,@“([\ d \ w] +)”);

演示here

更新

 var matches = Regex.Matches("KRIC-KLAX - IAD / I69", @"(\w+)");

答案 2 :(得分:1)

您可能想要这样做:

string inputString = "KRIC-KLAX - IAD / I69";
Regex re = new Regex("[ /-]"); 
string outputString = re.Replace(inputString, ","); 
// outputString is "KRIC,KLAX,IAD,I69" 

我刚刚修改帖子here.

中的代码