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