Show Menu
화제×

Regular Expressions

정규 표현식 구성의 구문 및 규칙에 대한 재교육.
정규 표현식 구문
텍스트
모든 단일 문자
[문자]
문자 클래스:문자 중 하나
[^chars]
문자 클래스:문자 없음
text1|text2
대체 요소:text1 또는 text2
수량자
?
이전 텍스트 중 0 또는 1
*
이전 텍스트 중 0 또는 N(N > 1)
+
1 또는 이전 텍스트 중 N(N > 1)
그룹
(text)
텍스트 그룹화 - 대체 요소의 테두리를 설정하거나 Nth 그룹이 $N이 있는 RewriteRule의 RHS에서 사용되는 부분을 다시 참조하는
Anchors
^
선 앵커 시작
$
줄 끝 앵커.
이스케이프
\char
특정 문자를 escape. 예를 들어 " 문자를 지정하려면[] ()" 등.
정규 표현식 규칙
  • 아래 설명된 특수 문자 중 하나가 아닌 일반 문자는 자체와 일치하는 한 문자 정규 표현식입니다.
  • 백슬래시(\) 뒤에 특수 문자가 오는 것은 특수 문자 자체와 일치하는 한 문자 정규 표현식입니다. 특수 문자는 다음과 같습니다.
    • . (마침표, * (별표), ? (물음표), + (더하기 기호), [ (왼쪽 대괄호), | (세로 파이프) 및 \ (백슬래시)는 대괄호 안에 나타나는 경우를 제외하고는 항상 특수 문자입니다.
    • ^ (삽입 기호 또는 곡절)는 정규 표현식 시작 부분이나 대괄호 쌍의 왼쪽 뒤에 오는 경우 특별합니다.
    • $ (달러 기호)는 정규 표현식 끝에 있는 특별한 값입니다.
    • . (period)는 new-line을 제외한 보조 코드 세트 문자를 포함하여 모든 문자와 일치하는 한 문자 정규 표현식입니다.
    • 비어 있지 않은 문자 문자열( [ ] 왼쪽 및 오른쪽 대괄호)은 해당 문자열에서 보조 코드 세트 문자를 포함하여 한 문자와 일치하는 한 문자 정규 표현식입니다.
      그러나 문자열의 첫 번째 문자가 ^ (곡절) 경우 한 문자 정규 표현식은 새 줄 및 문자열의 나머지 문자를 제외하고, 보조 코드 세트 문자를 포함한 모든 문자와 일치합니다.
      ^ 는 문자열에서 먼저 발생하는 경우에만 이 특별한 의미를 갖습니다. 보조 코드 세트 문자를 포함하여 연속된 문자 범위를 나타내기 위해 - (빼기 기호)를 사용할 수 있습니다. 예를 들어 ##.
      범위를 지정하는 문자는 동일한 코드 세트에서 와야 합니다. 문자가 서로 다른 코드 세트의 경우 범위를 지정하는 문자 중 하나가 일치합니다. 이 - 는 처음(있는 경우, 처음 이후) 또는 문자열에서 마지막 ^ 이 발생하는 경우 이 특수 의미를 잃게 됩니다. ( ] 오른쪽 대괄호)는 문자열 내 첫 번째 문자일 때, 처음 있는 경우, 그 다음 ^ 에 해당 문자열을 종료하지 않습니다. 예를 들어, []a-f] ] (오른쪽 대괄호) 또는 a - f와 같은 ASCII 문자 중 하나를 찾습니다. 위에 특수 문자로 나열된 네 개의 문자는 이러한 문자열 내에서 자신을 나타냅니다.
한 문자 정규 표현식에서 정규 표현식을 구성하는 규칙
다음 규칙을 사용하여 한 문자 정규 표현식에서 정규 표현식을 구성할 수 있습니다.
  • 한 문자 정규 표현식은 한 문자 정규 표현식과 일치하는 모든 항목을 만족하는 정규식입니다.
  • 한 문자 정규식 뒤에 * (별표)가 오는 정규식은 한 문자 정규 표현식의 0개 이상의 발생을 일치시키는 정규식이며, 이는 보조 코드 집합 문자일 수 있습니다. 선택 사항이 있으면 일치를 허용하는 가장 긴 문자열이 선택됩니다.
  • 한 문자 정규 표현식 뒤에 ? (물음표)가 오는 정규식은 0이나 한 문자 정규 표현식 한 개를 일치시키는 정규식이며, 이는 보조 코드 집합 문자일 수 있습니다. 선택 사항이 있으면 일치를 허용하는 가장 긴 문자열이 선택됩니다.
  • 한 문자 정규 표현식 뒤에 + (더하기 기호)가 오는 정규식은 한 문자 이상의 정규식 발생을 일치시키는 정규식입니다. 이 정규식은 보조 코드 집합 문자일 수 있습니다. 선택 사항이 있으면 일치를 허용하는 가장 긴 문자열이 선택됩니다.
  • 한 문자 정규 표현식 뒤에 {m} 또는 {m,} 는 한 문자 정규 표현식 {m,n} 의 발생 범위와 일치하는 정규식입니다. m 및 n의 값은 256보다 작은 음수가 아닌 정수여야 합니다. {m} m을 정확하게 일치시킵니다. {m,} 최소 m 회 일치 {m,n} m과 n 포함 사이의 모든 발생 횟수와 일치합니다. 선택 사항이 있을 때마다 정규 표현식은 가능한 한 많은 일치 항목을 찾습니다.
  • 정규 표현식의 연결은 정규 표현식의 각 구성 요소와 일치하는 문자열의 연결과 일치하는 정규 표현식입니다.
  • 문자 시퀀스( 및 ) 사이에 포함된 일반 표현식은 사용되지 않은 일반 표현식과 일치하는 모든 것을 나타내는 정규 표현식입니다.
  • 정규 표현식 뒤에 | (수직 파이프), 정규 표현식이 나오는 일반 표현식은 첫 번째 정규 표현식(세로 파이프 앞)이나 두 번째 정규 표현식(세로 파이프 뒤)과 일치하는 정규 표현식입니다.
또한 정규 표현식이 라인의 초기 세그먼트나 최종 세그먼트나 둘 다에 일치하도록 제한할 수 있습니다.
  • 정규 표현식 ^ 의 시작 부분에 있는 (곡절)은 해당 정규 표현식을 라인의 초기 세그먼트와 일치하도록 제한합니다.
  • 전체 정규 표현식 $ 끝에 있는 (달러 기호)는 해당 정규 표현식이 라인의 마지막 세그먼트와 일치하도록 제한합니다.
  • 생성됨 ^regular expression$은(는) 정규 표현식을 전체 라인과 일치하도록 제한합니다.
복잡한 대괄호로 묶은 정규 표현식 대신 사용할 수 있는 사전 정의된 문자 클래스 이름이 일부 있습니다. 예를 들어 한 자리 정규 표현식 # 또는 문자 클래스 한 문자 정규식 [ #]으로 숫자를 나타낼 수 있습니다.
사전 정의된 문자 클래스 및 그 의미는 다음과 같습니다.
문자 클래스
의미
[[:alnum:]]
알파벳 문자 또는 숫자.
[:alpha:]]
알파벳 문자입니다.
[[:blank:]]
공백이나 탭
[[:cntrl:]]
제어 코드비인쇄 문자
[:digit:]]
숫자.
[[:graph:]]
공간을 제외한 모든 인쇄 문자
[[:lower:]]
소문자 알파벳순 문자
[[:print:]]
공백을 포함한 모든 인쇄 문자
[[:gest:]]
구두점.
[[:공백:]]
공백, 탭 또는 줄 끝과 같은 공백.
[:upper:]]
대문자 알파벳순 문자
[:xdigit:]]
16진수, 대문자 또는 소문자
두 개의 특수 문자 클래스 이름은 단어의 시작과 끝에 있는 null 공백과 일치합니다. 즉, 실제 문자와 일치하지 않습니다. 단어는 영문자, 숫자 또는 밑줄(_)의 시퀀스로 간주됩니다.
문자 클래스
의미
[[:<:]]
단어 시작
[[:>:]]
단어의 끝