假设我们有一个字符串列表L
,一个给定的字符串S
。我们有一个正则表达式,就像(\w+)\-(\w+)
我们想要获取与正则表达式匹配的所有L
元素一样。怎么做这样的事情?S
$1
问问题
60 次
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 回答