匹配所有数字但以单个字符分割

时间:2014-07-10 08:06:15

标签: c# .net regex

这是我的字符串:

  

Hello world,' 4567'是我的号码。

如果在.NET中支持/g(全局修饰符),那么获得我想要的东西是没有问题的,但是现在,我不知道该怎么做并且需要你的帮助。我需要匹配所有数字(4567)但是用单个字符分割。我希望这样:

  

匹配1:4,   比赛2:5,   比赛3:6,   比赛4:7

谢谢, 阿里

3 个答案:

答案 0 :(得分:6)

您可以使用Regex.Matches获取所有匹配项,即您的案例中的数字。

var matches = Regex.Matches("Hello world, '4567' is my number.", "\\d"); 
    foreach(Match match in matches)
       Console.WriteLine(match.Value);

答案 1 :(得分:2)

没有,分居:

var matches = Regex.Matches("Hello world, '4567' is my number 679.", "\\d");
for (int i = 0; i < matches.Count; i++)
    Console.WriteLine(string.Format("Match {0}: {1}", i + 1, matches[i].ToString()));

如果您的字符串中有多个数字,它也可以使用。

<强>输出:

  

匹配1:4

     

比赛2:5

     

比赛3:6

     

比赛4:7

     

比赛5:6

     

比赛6:7

     

比赛7:9

使用,分离:

var matches = Regex.Matches(myString, "\\d");
string result = string.Empty;
for (int i = 0; i < matches.Count; i++)
    result += string.Format("Match {0}: {1}", i + 1, matches[i].ToString() + ", ");

Console.WriteLine(result.Trim().Trim(','));

<强>输出:

  

比赛1:4,比赛2:5,比赛3:6,比赛4:7,比赛5:6,比赛6:7,比赛7:9

答案 2 :(得分:1)

我知道这个问题已经使用正则表达式进行了标记,但是这里有另一个选项没有REGEX

foreach (var item in "Hello world, '4567' is my number.".Where(char.IsDigit))
{
    Console.WriteLine(item);
}