Exchange 2010 中有一个传输规则,它本身行为不正常,如果我尝试修复它,就会受到 EMC 的斥责。
该规则的目的是阻止任何来自地址末尾带有“us”的域名的电子邮件,除非该域名以合法的美国州缩写结尾,例如 NY.US 或 CA.US
如上所述,模式匹配如下:
.*@.*.us$
(任何以“.us”结尾的电子邮件)
除了
.*@.*.az.us$
(州缩写)
. (句点)元字符似乎是这里的罪魁祸首,但如果我尝试用反斜杠将其转义,如下所示:
.*@.*\.us$
(任何以“.us”结尾的电子邮件)
除了
.*@.*\.az.us$
(州缩写)
EMC 抱怨“您输入的正则表达式包含以下错误。您对反斜杠字符的使用存在问题。在正则表达式中,反斜杠字符用于文本模式匹配...反斜杠字符也可以用作转义字符...”
这正是我想做的。
知道如何修复此问题吗?
答案1
嗯,你用反斜杠错了。我不确定你为什么要转义其中一个句号,但这不是正确的语法,这就是为什么 EMC 会告诉你反斜杠字符的使用存在问题。
反斜杠用作特殊字符前的转义字符。特殊字符是模式字符串中使用的字符:
反斜杠 ( \ )
管道 ( | )
星号 ( * )
左括号 ( ( )
右括号 ( ) )
插入符号 ( ^ )
美元符号($)
例如,如果要匹配包含 (525) 的字符串,则可以输入 (525)。
换句话说,您不能使用反斜杠来“转义”句号。