정규식 옵션
업데이트: 2007년 11월
일치 동작에 영향을 미치는 옵션을 사용하여 정규식 패턴을 수정할 수 있습니다. 정규식 옵션은 두 가지 기본 방법으로 설정할 수 있습니다. 한 가지 방법은 Regex(pattern, options) 생성자의 options 매개 변수에 지정하는 것이며, 이 경우 options는 RegexOptions 열거값의 비트 논리합 조합입니다. 다른 방법은 인라인 (?imnsx-imnsx:) 그룹화 구문 또는 (?imnsx-imnsx) 기타 구문을 사용하여 정규식 패턴 내에 설정하는 것입니다.
인라인 옵션 구문에서 옵션 또는 옵션 집합 앞에 빼기 기호(-)가 있으면 해당 옵션이 해제됩니다. 예를 들어, 인라인 구문 (?ix-ms)에서는 IgnoreCase 및 IgnorePatternWhiteSpace 옵션을 사용하도록 설정하고 Multiline 및 Singleline 옵션을 해제합니다. 모든 정규식 옵션은 기본적으로 사용 설정이 해제되어 있습니다.
다음 표에는 RegexOptions 열거의 멤버 및 동일한 기능의 인라인 옵션 문자가 나열되어 있습니다. RightToLeft 및 Compiled 옵션은 식 전체에만 적용되며 인라인으로 사용할 수 없습니다. 이들 옵션은 Regex 생성자의 options 매개 변수에만 지정할 수 있습니다. None 및 ECMAScript 옵션은 인라인으로 사용할 수 없습니다.
RegexOption 멤버 |
인라인 문자 |
설명 |
---|---|---|
None |
N/A |
옵션이 설정되지 않도록 지정합니다. |
IgnoreCase |
i |
대/소문자를 구분하지 않고 찾도록 지정합니다. |
Multiline |
m |
여러 줄 모드를 지정합니다. 전체 문자열의 시작과 끝만이 아니라 어느 줄에서든 시작과 끝을 각각 나타내도록 ^ 및 $의 의미를 변경합니다. |
ExplicitCapture |
n |
유효한 캡처만이 명시적으로 명명되거나 번호가 지정된 (?<name>…) 형식 그룹이 되도록 지정합니다. 이렇게 지정하면 (?:…) 구문을 사용하지 않아도 괄호가 비캡처 그룹으로 작용합니다. |
Compiled |
N/A |
정규식이 어셈블리로 컴파일되도록 지정합니다. 정규식에 대한 MSIL(Microsoft Intermediate Language) 코드를 생성하므로 시작 시간은 느려지지만 실행 속도가 빨라집니다. |
Singleline |
s |
단일 행 모드를 지정합니다. \n을 제외한 모든 문자가 아니라 모든 문자를 나타내도록 마침표 문자(.)의 의미를 변경합니다. |
IgnorePatternWhitespace |
x |
이스케이프되지 않은 공백 문자를 패턴에서 제외하고 숫자 기호(#) 뒤에 주석을 사용하도록 지정합니다. 이스케이프된 공백 문자의 목록을 보려면 문자 이스케이프를 참조하십시오. 공백은 문자 클래스 내에서 제거되지 않습니다. |
RightToLeft |
N/A |
왼쪽에서 오른쪽이 아니라 오른쪽에서 왼쪽으로 검색하도록 지정합니다. 이 옵션을 사용하면 정규식이 시작 위치에서 오른쪽이 아닌 왼쪽으로 이동합니다. 따라서 시작 위치를 문자열의 시작 부분이 아닌 끝 부분으로 지정해야 합니다. 무한 루프가 있는 잘못된 정규식이 되지 않도록 방지하기 위해 이 옵션은 중간에 지정할 수 없습니다. 그러나 (?<) lookbehind 구문에서는 부분식으로 사용할 수 있는 유사한 구문을 제공합니다. RightToLeft는 검색 방향만 바꾸며 검색된 부분 문자열을 반대 순서로 뒤집지는 않습니다. lookahead 및 lookbehind 어설션은 검색 방향을 바꾸지 않으며 lookahead는 오른쪽으로 검색하고 lookbehind는 왼쪽으로 검색합니다. |
ECMAScript |
N/A |
ECMAScript와 호환되는 동작을 식에 사용할 수 있도록 지정합니다. 이 옵션은 IgnoreCase 및 Multiline 플래그와 병행하여 사용해야 합니다. ECMAScript를 다른 플래그와 함께 사용하면 예외가 발생합니다. |
CultureInvariant |
N/A |
언어의 문화권 차이점이 무시되도록 지정합니다. 자세한 내용은 RegularExpressions 네임스페이스에서 문화권의 영향을 받지 않는 작업 수행을 참조하십시오. |