Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与Regex.Split有关的问题_C#_Regex - Fatal编程技术网

C# 与Regex.Split有关的问题

C# 与Regex.Split有关的问题,c#,regex,C#,Regex,因此,我试图检查字符串是否遵循如下模式:abbcc,即每个字母出现的次数与其设置位置指示的次数相同。因此,我考虑使用以下模式拆分字符串:(?您可以使用该模式: (.)\1* 你得到3个匹配a,bb,ccc 样本源() 使用Regex.Split(有一个捕获组,捕获的值也成为结果数组的一部分)将其过度复杂化。使用Regex.Matches(s,@“(\w)\1*”).Cast()。选择(x=>x.value)。ToList()如果replace起作用,你不能先替换然后拆分离子吗?@EpicKi

因此,我试图检查字符串是否遵循如下模式:
abbcc
,即每个字母出现的次数与其设置位置指示的次数相同。因此,我考虑使用以下模式拆分字符串:
(?您可以使用该模式:

(.)\1*
你得到3个匹配a,bb,ccc

样本源()


使用
Regex.Split
(有一个捕获组,捕获的值也成为结果数组的一部分)将其过度复杂化。使用
Regex.Matches(s,@“(\w)\1*”).Cast()。选择(x=>x.value)。ToList()
如果replace起作用,你不能先替换然后拆分离子吗?@EpicKip当然,但这不是我的问题。请明确你感兴趣的是什么,一个解决方案,一个解释为什么你在输出数组中得到更多值,或者两者都有?abb--ccc33
的预期结果是什么?实际上,@EpicKip的想法可能是最好的在这种情况下,只需选择一个不常用的符号,如
\u200C
(ZWNJ)来替换,然后拆分。
    string pattern = @"(.)\1*";
    string input = @"abbccc";

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