如何检查字符串是否在vb.net中有连续的字符

时间:2016-10-27 10:25:49

标签: asp.net regex vb.net

我试图检查字符串是否包含vb.net中的连续字符

示例:

'test@01' - not ok
'test@02 - ok
'testab' - not ok
'testac' - ok
'testabc' not ok

字符串不应该有任何连续的字符。 (数字和字母)字母数字

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

你的问题非常模糊。更别说语言(C#或VB)有很多含糊之处:

  • "cba"是否正常(续但是降序顺序)?
  • "aBc"是否正常(当忽略案件时,会有什么问题?)
  • "x@A"是否正常(根据ascii charater table '@''A'之前)?

如果答案全部是,则仅提升顺序,案例敏感两者< / em>字符必须是字母和数字),一个简单的循环解决任务(C#):

  string source = "test@01";
  bool result = false;

  for (int i = 1; i < source.Length; ++i)
    if (char.IsLetterOrDigit(source[i]) && char.IsLetterOrDigit(source[i - 1]))
      if (source[i] - source[i - 1] == 1) { 
        result = true;

        break;
      }

...

Console.Write(result ? "OK" : "Not OK");

编辑如果您想要不区分大小写的测试,则必须进行比较

 if (char.ToUpperInvariant(source[i]) - char.ToUpperInvariant(source[i - 1]) == 1)