다음을 통해 공유


전송 규칙의 정규식

적용 대상: Exchange Server 2010

마지막으로 수정된 항목: 2009-11-05

Exchange Server 2010 전송 규칙 조건자에 정규식을 사용하여 메시지 헤더, 보낸 사람, 받는 사람, 메시지 제목 및 본문과 같은 여러 메시지 부분의 텍스트 패턴을 일치시킬 수 있습니다. 조건자는 구성된 작업을 전자 메일 메시지에 적용해야 하는지 결정하기 위해 조건 및 예외에서 사용됩니다.

전송 규칙과 관련된 관리 작업에 대한 자세한 내용은 전송 규칙 관리를 참조하십시오.

목차

단순식과 정규식 비교

Exchange 2010의 정규식

정규식을 사용하는 전송 규칙 만들기

단순식과 정규식 비교

정규식을 이해하려면 먼저 단순식을 이해해야 합니다. 단순식은 메시지에서 정확하게 일치시키려는 특정 값입니다. 단순식을 사용한 조건자는 특정 단어나 문자열을 일치시킵니다. 단순식의 예로 조직 외부로 배포하지 않으려는 문서의 제목(예: Yearly Sales Forecast.doc)이 있습니다. 전자 메일 메시지의 데이터가 전송 규칙의 조건이나 예외를 충족시키려면 단순식과 정확하게 일치해야 합니다.

정규식은 메시지에서 텍스트의 패턴을 찾는 데 사용되는 간결하고 유연한 표기법입니다. 이 표기법은 두 개의 기본 문자 유형인

  • 리터럴 문자   대상 문자열에 있어야 하는 텍스트입니다. 이러한 문자는 입력된 일반 문자입니다.
  • 메타 문자   리터럴로 해석되지 않는 하나 이상의 특수 문자입니다. 이러한 문자는 텍스트가 대상 문자열에서 어떻게 달라질 수 있는지를 나타냅니다.

정규식을 사용하면 전자 메일 메시지를 빠르게 구문 분석하여 특정 텍스트 패턴을 찾을 수 있습니다. 이 기능을 통해 SSN(주민 등록 번호), 특허 번호, 전화 번호 등 특정 형식의 콘텐츠가 포함된 메시지를 검색할 수 있습니다.

이러한 데이터는 단순식과 적절하게 일치시킬 수 없는데, 이는 단순식의 경우 검색하려는 값의 가능한 모든 변형을 입력해야 하기 때문입니다. 대체로 이러한 응용 프로그램에 단순식을 사용하는 것은 현실적으로 비효율적이며 메시지 콘텐츠에서 여러 단순식을 일치시키는 데 리소스가 많이 소모될 수 있습니다. 일반적으로 정규식을 사용하는 것이 더 효율적입니다. 가능한 모든 변형을 지정하는 대신 텍스트 패턴을 검색할 전송 규칙 조건자를 구성하면 됩니다.

Exchange 2010의 정규식

Exchange 관리 셸에서는 Patterns 조건자 속성을 허용하는 모든 조건자에 정규식을 사용할 수 있습니다. Exchange 관리 콘솔에서는 텍스트 패턴이 있는 단어가 포함된 모든 조건 또는 예외에서 정규식을 사용할 수 있습니다. 조건자에 대한 자세한 내용은 전송 규칙 조건자를 참조하십시오.

경고

사용자가 만든 정규식은 신중히 테스트하여 원하는 결과가 산출되는지 확인해야 합니다. 잘못 구성된 정규식은 예기치 않은 결과를 산출하고 불필요한 전송 규칙 동작을 야기할 수 있습니다. 이 경우 메시지와 메시지 콘텐츠에 대해 불필요한 작업이 수행되어 메시지 거부, 반송 등의 작업을 사용할 때 데이터가 손실될 수 있습니다. 프로덕션 환경에서 구현하기 전에 테스트 환경에서 정규식을 테스트하십시오.

다음 표에서는 Exchange 2010에서 패턴 일치 정규식을 만드는 데 사용할 수 있는 패턴 문자열을 보여줍니다.

패턴 문자열

패턴 문자열 설명

\S

\S 패턴 문자열은 공백이 아닌 모든 단일 문자와 일치합니다.

\s

\s 패턴 문자열은 모든 단일 공백 문자와 일치합니다.

\D

\D 패턴 문자열은 숫자가 아닌 모든 문자와 일치합니다.

\d

\d 패턴 문자열은 모든 한 자리 숫자와 일치합니다.

\w

\w 패턴 문자열은 문자 또는 10진수로 분류된 단일 유니코드 문자와 일치합니다.

\W

\W 패턴 문자열은 문자 또는 10진수로 분류되지 않는 단일 유니코드 문자와 일치합니다.

|

파이프( | ) 문자는 OR 함수를 수행합니다.

*

별표( * ) 문자는 0개 이상의 이전 문자 인스턴스와 일치합니다. 예를 들어 ab*c는 다음 문자열과 일치합니다. ac, abc, abbbbc.

( )

괄호는 그룹 구분 기호의 역할을 합니다. 예를 들어, a(bc)*a, abc, abcbc, abcbcbc 등의 문자열과 일치합니다.

\

백슬래시는 특수 문자 앞에 이스케이프 문자로 사용됩니다. 특수 문자는 패턴 문자열에 사용되는 다음과 같은 문자입니다.

  • 백슬래시( \ )
  • 파이프( | )
  • 별표( * )
  • 여는 괄호( ( )
  • 닫는 괄호( ) )
  • 캐럿( ^ )
  • 달러 기호( $ )

예를 들어 (525)가 포함된 문자열을 일치시키려면 \(525\)를 입력해야 합니다.

^

캐럿(^) 문자는 캐럿 다음에 오는 패턴 문자열이 일치하는 텍스트 문자열의 시작에 있어야 함을 나타냅니다.

예를 들어 ^fred@contoso fred@contoso.com fred@contoso.co.uk와 일치하지만 alfred@contoso.com과는 일치하지 않습니다.

이 문자는 달러 기호($) 문자와 함께 사용되어 일치시킬 정확한 문자열을 지정할 수도 있습니다. 예를 들어 ^kim@contoso.com$ kim@contoso.com 과만 일치하며 kim@contoso.com.au를 비롯한 다른 것과는 일치하지 않습니다.

$

달러 기호($) 문자는 앞에 오는 패턴 문자열이 일치해야 하는 텍스트 문자열의 끝에 와야 함을 나타냅니다.

예를 들어 contoso.com$adam@contoso.com kim@research.contoso.com과 일치하지만 kim@contoso.com.au와는 일치하지 않습니다.

이 문자는 캐럿(^) 문자와 함께 사용하여 일치시킬 정확한 문자열을 지정할 수도 있습니다. 예를 들어 ^kim@contoso.com$ kim@contoso.com 과만 일치하며 chris@sales.contoso.com를 비롯한 다른 것과는 일치하지 않습니다.

정규식 생성

앞의 표를 사용하여 일치시키려는 데이터 패턴과 일치하는 정규식을 생성할 수 있습니다. 일치시키려는 데이터의 각 문자 또는 문자 그룹을 왼쪽부터 오른쪽으로 진행하며 작업합니다. 각 패턴 문자열의 설명을 읽고 해당 패턴 문자열이 일치시키려는 데이터에 어떻게 적용되는지 확인합니다. 그런 다음 표에 있는 패턴 문자열 중 해당 문자 또는 문자 그룹을 나타내는 패턴 문자열을 결정하고 해당 패턴 문자열을 정규식에 추가합니다. 작업을 마치면 정규식이 완성됩니다.

이 정규식 예는 북미 전화 번호 형식(425 555-0100 및 425.555.0100)과 일치합니다.

425(\s|.)\d\d\d(-|.)\d\d\d\d

지역 번호에 괄호를 사용하는 전화 번호 형식(예: (425) 555-0100)을 추가하여 이 정규식을 확장할 수 있습니다. 이 정규식 예는 세 가지 전화 번호 형식과 모두 일치합니다.

\d\d\d(\s|.|-|\)|\)\s)\d\d\d(\s|.|-)\d\d\d\d

앞에 나온 예를 다음과 같이 분석할 수 있습니다.

  • \d\d\d   정확하게 세 자리 숫자가 처음에 와야 합니다.
  • ((\s|.|-\)|\)\s)   세 자리 숫자 다음에 공백, 마침표 또는 하이픈이 와야 합니다. 각 문자 일치 문자열은 그룹 구분 기호에 포함되며 파이프 문자로 구분됩니다. 즉, 그룹 구분 기호 내에서 지정된 문자 중 하나만 일치시킬 문자열에서 이 위치에 올 수 있습니다. 지역 번호와 다른 세 자리 숫자를 구분하기 위해 닫는 괄호 또는 닫는 괄호와 공백도 찾습니다.
  • \d\d\d   정확하게 세 자리 숫자가 다음에 와야 합니다.
  • (\s|.|-)   세 자리 숫자 다음에 공백, 마침표 또는 하이픈이 와야 합니다.
  • \d\d\d\d   정확하게 네 자리 숫자가 다음에 와야 합니다.

위의 정규식은 다음 샘플 값과 일치합니다.

  • (425)555.0100
  • 425 555 0100
  • 425. 555-0100
  • (425) 555-0100
  • 425-555-0100
  • (425) 555-0100

정규식을 사용하는 전송 규칙 만들기

이 예에서는 정규식을 사용하여 전자 메일 메시지의 제목에 있는 SSN을 일치시키는 전송 규칙을 셸에서 만듭니다.

New-TransportRule -Name "Social Security Number Block Rule" -SubjectOrBodyMatchesPatterns '\d\d\d-\d\d-\d\d\d\d' -RejectMessageEnhancedStatusCode "5.7.1" -RejectMessageReasonText "This message has been rejected because of content restrictions" 

이 예에서는 새 전송 규칙을 볼 수 있습니다.

Get-TransportRule "Social Security Number Block Rule" | Format-List