1
假設我們有一個字符串列表L
,給定字符串S
。我們有一個像(\w+)\-(\w+)
的正則表達式,我們希望獲得所有L
元素,其中S
匹配$1
的正則表達式。如何做這樣的事情?如何找出regexp parsed string part是否包含另一個字符串?
假設我們有一個字符串列表L
,給定字符串S
。我們有一個像(\w+)\-(\w+)
的正則表達式,我們希望獲得所有L
元素,其中S
匹配$1
的正則表達式。如何做這樣的事情?如何找出regexp parsed string part是否包含另一個字符串?
你可以這樣做:
// 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();
一循環? '。凡()'? – zerkms 2013-04-21 10:12:40
假設'S'是'bar',一個'L'是'foo-bar-baz' - 你想讓它成爲一個匹配嗎? – 2013-04-21 10:32:43
爲什麼不直接製作正則表達式'S + @「\ - (\ w +)」'? – 2013-04-21 11:33:33