Regex.Matches返回零结果

时间:2013-08-07 07:59:49

标签: c# regex

我很确定我在这里做错了什么,但我不能指出这个问题。

我在C#代码中有这一行:

string match = "Test - Wow";
MatchCollection contact = Regex.Matches(match, "-");

//Expected output in contact : contact[0]=="Test " & contact[1]==" Wow" ; 

但由于某种原因,联系人返回为空,意味着与"-"不匹配。 我甚至尝试了@"-""(-)""(-)*""[-]""([-]*)",但没有任何效果。 我做错了什么?

3 个答案:

答案 0 :(得分:1)

不,它没有。它工作正常!

string match = "Test - Wow";
MatchCollection contact = Regex.Matches(match, "-");
int count = contact.Count; // returns 1
Match onematch = contact[0];
string str = onematch.ToString(); // returns -

在这里测试http://ideone.com/LWTQWn

如果你想要一个正则表达式,如果存在-则会返回所有字符串,这样的.*-.*就可以了(任意数量的任何字符,一个 - ,任意数字的任何字符)

答案 1 :(得分:1)

  • 是正则表达式的保留字符。你需要“ - ”(斜线减去)。会发现什么是' - '。当你想找到Test和Wow时,你必须使用Regex.Split()函数。

答案 2 :(得分:1)

此任务不需要正则表达式。最好使用分割功能。

 "Test - Wow".Split('-').Select(x => x.Trim())