提问者:小点点

如何使用C#在RegEx中比较两个具有连续设置字符的字符串


第一个字符串是

string str1="aaa sdf xxx fgd bbb efg rrr";

第二串

string str2="ddd qwe ccc fgd eee ehj";

什么应该是RegEx模式,它说str1和str2在模式上是相同的。

string pattern = "---------"; 

if(Regex.Match(str1 , pattern).Success== Regex.Match(str2 , pattern).Success)
{
     return true;
}

像这样的if字符串

string str1="afa fff fss fgd bfb efg rrr";

string str2="sdf qwe cfc fgd ge ehj";

代码应该返回false


共3个答案

匿名用户

正则表达式将是:

[a-z\ ]*

匿名用户

var segments1 = str1.Split(' ').Select((str, index) => new { Count = str.Length, Index = index });
var segments2 = str2.Split(' ').Select((str, index) => new { Count = str.Length, Index = index });
bool bIsSamePattern = true;
foreach(var segment in segments1)
{
  var segment2 = segments2.FirstOrDefault(x => x.Index == segment.Index);
  if (segment2 == null)
    break;
  bIsSamePattern = segment2.Count == segment.Count;
}

如果这对您来说更容易,您不需要使用Regex

匿名用户

尝试以下操作:

([a-zA-Z0-9])\1\1

推荐:

http://icfun.blogspot.in/2008/07/regex-to-match-same-consecutive.html

希望它有帮助。