这是我的字符串:
Hello world,' 4567'是我的号码。
如果在.NET中支持/g
(全局修饰符),那么获得我想要的东西是没有问题的,但是现在,我不知道该怎么做并且需要你的帮助。我需要匹配所有数字(4567
)但是用单个字符分割。我希望这样:
匹配1:4, 比赛2:5, 比赛3:6, 比赛4:7
谢谢, 阿里
答案 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);
}