0

我很确定我在这里做错了什么,但我无法指出问题所在。

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

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

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

但由于某种原因联系返回空,意思是不匹配"-"。我什至尝试过@"-", "(-)", "(-)*", "[-]","([-]*)"但没有任何效果。我究竟做错了什么?

4

3 回答 3

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

如果你想要一个正则表达式,如果 a-存在,它将返回所有字符串,这样的事情.*-.*会做(任何数量的任何字符,一个 -,任何数量的任何字符)

于 2013-08-07T08:02:20.587 回答
1
  • 是正则表达式的保留字符。您将需要“-”(斜线减号)。将找到的是'-'。当你想找到 Test 和 Wow 时,你必须使用 Regex.Split() 函数。
于 2013-08-07T08:05:24.697 回答
1

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

 "Test - Wow".Split('-').Select(x => x.Trim())
于 2013-08-07T08:07:05.767 回答