正则表达式字符串比较忽略符号

Regular expression string compare ignoring symbols

本文关键字:符号 比较 字符串 正则表达式      更新时间:2023-09-26

我有两个变量:

varAdditionalTeamAddress = ;; MountainWestITSupport@somedomain.com
VariableAddTeamEmails =  ; MountainWestITSupport@somedomain.com;

这两个变量用于连接和收集其他支持团队电子邮件。但是在串联过程中,如果电子邮件是空的,则只有分号过来。

我需要比较这两个变量(忽略;)看看它们是否相等。我们可以编写一个正则表达式来从此电子邮件字符串中提取所有分号和空格,以便它们具有可比性吗?

与上述内容一样,如果我通过排除空格和分号来清理它们,则相等性测试将返回 TRUE。

正则表达式大师,请帮忙。PS 我需要正则表达式的方式来做到这一点。

你可以做:

varAdditionalTeamAddress = varAdditionalTeamAddress.replace(/^[ ;]+/, "");
VariableAddTeamEmails = VariableAddTeamEmails.replace(/^[ ;]+/, "");

从变量的开头删除;和空格的任意组合。

对不起压缩代码:

if( 
     VariableAddTeamEmails.match( /'w+@'w+'.'w+/g ).indexOf( 
          varAdditionalTeamAddress.match( /'w+@'w+'.'w+/g )[ 0 ] )  
     ) != -1
){
 // ...
}

我的正则表达式并不是获取地址邮件的最佳方式。在StackOverFlow上有很多关于它的主题。

如果你在使用PowerShell的Windows上,那么你可以这样做

$varAdditionalTeamAddress = ";; MountainWestITSupport@somedomain.com"
$VariableAddTeamEmails = " ; MountainWestITSupport@somedomain.com;"
if ( ($varAdditionalTeamAddress.Trim() -replace '(;+|'s)','') -eq ($VariableAddTeamEmails.Trim() -replace '(;+|'s)','')){
    Write "Email Strings are equal"
}else{
    Write "They Seem to different"
}