我有一个数组
string [] country = {"IND", "RSA", "NZ", "AUS", "WI", "SL", "ENG", "BAN"};
我有一个字符串
downloadString = "印度 (IND) 和澳大利亚 (AUS) 之间的比赛进入了激动人心的阶段。南非 (RSA) 赢得了英格兰 (ENG) 的比赛 "
所以我试图找出字符串中存在哪些数组元素。我能够发现字符串中存在 IND
、RSA
、AUS
和 ENG
。但是,我无法根据它们在字符串中的出现对它们进行排序。所以现在我得到的输出是
IND、RSA、AUS、ENG
然而,我真正需要的是
IND、AUS、RSA、ENG
我该怎么做?
最佳答案
另一种可能性是使用具有以下模式的正则表达式:
\b(IND|RSA|NZ|AUS|WI|SL|ENG|BAN)\b
Demo
示例代码:(未经测试)
MatchCollection matches= System.Text.RegularExpresssion.Regex.Matches(yourStringSample, patternHere);
for each (Match m in matches)
{
Debug.Print(m.ToString())
}
希望对您有所帮助!
编辑:
根据下面的评论,我应该强调正则表达式模式应该使用类似下面的代码构建:(如 JLRishe 所建议的那样)
string pattern = "(" + string.Join("|", country.Select(c => Regex.Escape(c))) + ")"
关于c# - 如何根据 C# 中字符串中元素的出现对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717039/