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 用于比较具有特殊字符的两个字符串的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式

用于匹配特殊字符的正则表达式没有空格或换行符

Regex-如何防止重复的特殊字符?

用于仅从字符串中删除特定特殊字符的正则表达式

Javascript RegExp 用于精确匹配具有特殊字符的多个单词

javascript js特殊字符检测#js #regex