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

本文关键字:正则表达式 提取 字符串 | 更新日期: 2023-09-27 18:28:28

飞行员可以在文本框中输入他们的飞行路线,如下所示:

KRIC-KLAX-IAD/I69

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

KRIC,KLAX,IAD,I69

有人知道正则表达式,最好是用.NET C#来实现这一点吗?

谢谢。

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

var matches=Regex.matches("KRIC-KLAX-IAD/I69",@"([''d''w]+)");

在这里演示。

更新

 var matches = Regex.Matches("KRIC-KLAX - IAD / I69", @"('w+)");
  var result = Regex.Matches(input, @"'w+")
      .OfType<Match>()
      .Select(_ => _.Value)
      .ToArray();

或者更简单:

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

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

您可能想做这样的事情:

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

我刚刚修改了这里帖子中的代码。