Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字符串中提取项的正则表达式_C#_.net_Regex - Fatal编程技术网

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

C# 从字符串中提取项的正则表达式,c#,.net,regex,C#,.net,Regex,飞行员可在文本框中输入其飞行路线,如下所示: KRIC-KLAX-IAD/I69 这是极端的,因为它通常是KRIC-KLAX-KIAD-I69。关键是每个“修复”由非a-z或0-9个字符分隔。我需要从上述字符串中提取修复程序,以生成一个修复程序数组,该数组将是: 克里克、克拉克斯、IAD、I69 有人知道正则表达式,最好是在.NETC#中实现这一点吗 多谢各位 var result = Regex.Matches(input, @"\w+") .OfType<Match&g

飞行员可在文本框中输入其飞行路线,如下所示:

KRIC-KLAX-IAD/I69

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

克里克、克拉克斯、IAD、I69

有人知道正则表达式,最好是在.NETC#中实现这一点吗

多谢各位

  var result = Regex.Matches(input, @"\w+")
      .OfType<Match>()
      .Select(_ => _.Value)
      .ToArray();
正如@TLS正确指出的,如果下划线也应该被视为分隔符,那么您可能会使用
[a-zA-Z0-9]+

正如@TLS正确指出的,如果下划线也应该被视为分隔符,那么您可能会使用
[a-zA-Z0-9]+
var matches=Regex.matches(“KRIC-KLAX-IAD/I69”,@”([\d\w]+)”

演示

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

演示

更新
您可能希望执行以下操作:

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

我刚刚修改了帖子中的代码

您可能需要执行以下操作:

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

我刚刚修改了帖子中的代码

匹配项
不返回
IEnumerable
。您需要使用
Cast
匹配项
不返回
IEnumerable
。您需要使用
Cast
\d
没有必要,因为
\w
将匹配数字、字母和下划线。如果您希望避免下划线匹配,您将需要以下变体:
([a-zA-Z0-9]+)
Awesome-感谢您的快速响应和有用的站点!请注意,默认情况下,在服务器端,\w还包括所有阿拉伯语、汉语、希腊语、拉丁语等字符。如果您真的想安全起见,我怀疑使用[a-zA-Z0-9]比\w要好得多。(请参阅:)没有必要使用
\d
,因为
\w
将匹配数字、字母和下划线。如果您希望避免下划线匹配,您将需要以下变体:
([a-zA-Z0-9]+)
Awesome-感谢您的快速响应和有用的站点!请注意,默认情况下,在服务器端,\w还包括所有阿拉伯语、汉语、希腊语、拉丁语等字符。如果您真的想安全起见,我怀疑使用[a-zA-Z0-9]比\w要好得多。(见:)
string inputString = "KRIC-KLAX - IAD / I69";
Regex re = new Regex("[ /-]"); 
string outputString = re.Replace(inputString, ","); 
// outputString is "KRIC,KLAX,IAD,I69"