正则表达式在字符串中查找超过2个相邻字符

时间:2017-02-19 00:59:11

标签: c# regex

我需要查找给定的字符串是否包含2个以上的相邻字符。例如;

Test123 - 应该返回true,因为它有123个(超过2个)相邻数字。

TestABC - 因ABC而返回true。

Test - 返回false。

如果有人知道答案,请分享。如果Regex不是解决方案,那么请以任何其他方式提出建议,谢谢。

1 个答案:

答案 0 :(得分:0)

这不是正则表达式的工作,但更多的char转换为int。由于每个char都有一个int值,因此您可以跟踪字符之间的差异,如下所示:

static bool isValid(string s)
{
    int oldValue = int.MinValue;
    int consecutiveCounter = 0;

    foreach (char item in s)
    {
        if(Math.Abs((int)item - oldValue) <= 1)
        {
            consecutiveCounter++;
            oldValue = (int)item;

            if (consecutiveCounter == 2)
                return true;
            else
                continue;
        }

        oldValue = (int)item;
        consecutiveCounter = 0;
    }

    return false;
}