RegEx用于比较两个带有特殊字符的字符串

时间:2019-05-02 16:42:01

标签: c# asp.net regex string-comparison

我正在使用.Equals()方法检查我的字符串是否相等。我有十几种不同的琴弦 并且对于所有字符串都可以正常工作,但是我卡在了电话号码和地址中。

  

我的字符串A为(111)-22-3333,字符串B为111223333。

是否可以使用正则表达式使比较结果为true,同时仍然执行.Equals()。我是RegEx的新手。

我在执行.Equals之前尝试使用了replaceAll,但出现“字符串不包含replaceAll .....的定义”错误。

1 个答案:

答案 0 :(得分:0)

正如您正确解释的那样,您可以在此处结合使用RegEx和String比较(等于)。首先,我将从StringA中删除所有非数字字符(使用RegEx),然后比较两个字符串。在代码中看起来像这样:

stringA = "(111)-22-3333";
stringB = "11122333";

if(Regex.Replace(stringA, "[^0-9]", "").Equals(stringB)) {
   Console.WriteLine("Match found!");
}else {
   Console.WriteLine("Try again...");
}

这对于您的解决方案应该可以正常工作,我已验证它可以在本地计算机上工作。无论如何,我不确定这对于大型字符串将如何执行。