RegEx 用于比较具有特殊字符的两个字符串
Posted
技术标签:
【中文标题】RegEx 用于比较具有特殊字符的两个字符串【英文标题】:RegEx for comparison of two strings with special characters 【发布时间】:2019-09-21 05:39:28 【问题描述】:我正在使用 .Equals() 方法来检查我的字符串是否相等。我有十几个不同的字符串 它适用于所有字符串,但我被电话号码和地址卡住了。
我的字符串 A 为 (111)-22-3333,字符串 B 为 111223333。
是否可以使用正则表达式来使这个比较结果为真,同时仍在执行 .Equals()。我是 RegEx 的新手。
我在执行 .Equals 之前尝试使用 replaceAll,但出现“字符串不包含 replaceAll 的定义.....”错误。
【问题讨论】:
正如错误告诉你的那样,不存在这种方法。 C# 不是 Java。你读过文档吗? 【参考方案1】:正如您正确解释的那样,您可以在此处结合使用 RegEx 和字符串比较 (Equals)。首先,我会从 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...");
这应该适用于您的解决方案,我已验证它可以在我的本地计算机上运行。无论如何,我不确定这对于大字符串会如何执行。
【讨论】:
以上是关于RegEx 用于比较具有特殊字符的两个字符串的主要内容,如果未能解决你的问题,请参考以下文章