问题与Regex.Split

时间:2017-11-22 09:17:04

标签: c# regex

所以我试图检查一个字符串是否遵循这样的模式:abbccc,其中每个字母出现的次数与其设置的位置相同。所以我考虑用这种模式分割字符串:(?<=(\w))(?=\w)(?!\1)并从那里继续。问题是,特别是对于上面的字符串(但对于其他字符串),我得到5个字符串Regex.Splita, a, bb, b, ccc,而不是a, bb, ccc,我的期望。我认为正则表达式存在问题,但Regex.Replace工作正常,返回a_bb_ccc。可能是什么问题?

1 个答案:

答案 0 :(得分:2)

您可以使用:

(.)\1*

你得到3场比赛a,bb,ccc

Demo

示例来源(run here

    string pattern = @"(.)\1*";
    string input = @"abbccc";

    foreach (Match m in Regex.Matches(input, pattern))
        Console.WriteLine(m.Value);