problema de regex desconcertante no Exchange

1

Eu tenho uma regra de transporte no Exchange 2010 que não está se comportando sozinha, e sou criticada pela EMC se eu tentar corrigi-la.

O objetivo da regra é bloquear qualquer email proveniente de um domínio com "us" no final do endereço, exceto se vier de um domínio que termine em uma abreviação de estado legítima dos EUA, como NY.US ou CA .US

Conforme escrito, as correspondências de padrões são:

.*@.*.us$ (qualquer email que termine com ".us")

exceto

.*@.*.az.us$ (abreviações de estado)

(período) metacaractere parece ser o culpado aqui, mas se eu tentar escapar com uma barra invertida, como em:

.*@.*\.us$ (qualquer email que termine com ".us")

exceto

.*@.*\.az.us$ (abreviações de estado)

o EMC reclama "A expressão regular que você digitou contém o seguinte erro. Há um problema com o uso do caractere de barra invertida. Em uma expressão regular, o caractere de barra invertida é usado para correspondência de padrão de texto ... O caractere de barra invertida também pode ser usado como um personagem de escape ... "

que é exatamente o que estou tentando fazer.

Alguma ideia de como consertar isso?

    
por GemaraKup 27.12.2017 / 19:40

1 resposta

0

Bem, você está usando a barra invertida incorretamente. Não sei por que você está tentando escapar de um desses períodos, mas essa não é uma sintaxe adequada, e é por isso que a EMC está informando que há um problema com o uso do caractere de barra invertida .

A backslash is used as an escaping character before a special character. Special characters are characters used in pattern strings:

Backslash ( \ )

Pipe ( | )

Asterisk ( * )

Opening parenthesis ( ( )

Closing parenthesis ( ) )

Caret ( ^ )

Dollar sign ( $ )

For example, if you want to match a string that contains (525), you would type (525).

Em outras palavras, você não pode usar uma barra invertida para "escapar" de um ponto.

    
por 27.12.2017 / 19:55