Regex.Matches返回零结果

本文关键字:结果 返回 Matches Regex | 更新日期: 2023-09-27 18:26:39

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

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

string match = "Test - Wow";
MatchCollection contact = Regex.Matches(match, "-");
//Expected output in contact : contact[0]=="Test " & contact[1]==" Wow" ; 

但由于某种原因,联系人返回为空,这意味着与"-"不匹配。我甚至尝试过@"-""(-)""(-)*""[-]""([-]*)",但都不起作用。我做错了什么?

Regex.Matches返回零结果

不,不是。它工作正常!

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

如果您想要一个正则表达式,它将在存在-的情况下返回所有字符串,那么像这样的.*-.*将执行(任意数量的任何字符,一个-,任意数量的任意字符)

  • 是Regex的保留字符。您需要"-"(斜线-减号)。将找到的是"-"。当你想找到Test和Wow时,你必须使用Regex.Splitt()函数

此任务不需要regex。最好使用split函数。

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