用c#解析并查找介于两者之间的字符串(双方括号内的英文字符串)

本文关键字:字符串 方括号 文字 两者之间 查找 | 更新日期: 2023-09-27 18:16:26

下面是代码片段。要查找的项目以"[["开头,以"]]"结尾,后面跟着任何英文字母a-z和a-z。最有效的方法是什么?

 string sample_input = "'''அர்காங்கெல்சுக் [[sam]] மாகாணம்''' (''Arkhangelsk Oblast'', {{lang-ru|Арха́нгельская о́бласть}}, ''அர்காங்கெல்சுக்யா ஓபிலாஸ்து'') என்பது  [[உருசியா]]வின் [[I am sam]] [[உருசியாவின் கூட்டாட்சி அமைப்புகள்|நடுவண் அலகு]] ஆகும். <ref>{{cite news|author=Goldman, Francisco|date=5 April 2012|title=Camilla Vallejo, the World's Most Glamorous Revolutionary|newspaper=[[The New York Times Magazine]]| url=http://www.nytimes.com/2012/04/08/magazine/camila-vallejo-the-worlds-most-glamorous-revolutionary.html|accessdate=5 April 2013}}</ref>";          
List<string> found = new List<string>();
foreach (var item in sample_input.Split(' '))
{
  if (item.StartsWith("[[s") || item.StartsWith("[[S") || item.StartsWith("[[a") || item.StartsWith("[[a"))
  {                    
      found.Add(item);
  }
}

预期结果:[[山姆]], [[我山姆]], [[《纽约时报杂志》]]

用c#解析并查找介于两者之间的字符串(双方括号内的英文字符串)

试试这个

string sample_input = "'''அர்காங்கெல்சுக் [[sam]] மாகாணம்''' (''Arkhangelsk Oblast'', {{lang-ru|Арха́нгельская о́бласть}}, ''அர்காங்கெல்சுக்யா ஓபிலாஸ்து'') என்பது  [[உருசியா]]வின் [[உருசியாவின் கூட்டாட்சி அமைப்புகள்|நடுவண் அலகு]] ஆகும்.";
var regex= new Regex(@"'['[[a-zA-Z]+']']");
var found = regex.Matches(sample_input).OfType<Match>().Select(x=>x.Value).ToList();