1

假设我们有一个字符串列表L,一个给定的字符串S。我们有一个正则表达式,就像(\w+)\-(\w+) 我们想要获取与正则表达式匹配的所有L元素一样。怎么做这样的事情?S$1

4

1 回答 1

1

你可以这样做:

// sample data
string[] L = new string[] { "bar foo", "foo bar-zoo", "bar-", "zoo bar-foo" };
string S = "bar";

Regex regex = new Regex(@"(\w+)\-(\w+)");
string[] res = L.Where(l => { 
      Match m = regex.Match(l);
      if (m.Success) return m.Groups[1].Value == S;
      else return false;
    }).ToArray();

并得到

foo bar-zoo
zoo bar-foo

一种可能对您也有效的更简单方法是包含S在正则表达式中:

Regex regex = new Regex(S + @"\-(\w+)");
string[] res = L.Where(l => regex.Match(l).Success).ToArray();
于 2013-04-21T11:42:35.843 回答