App

정규식

마피아9 2020. 11. 19. 10:45

[정규식] 
 ^x : 문자열이 x로 시작 
 x$ : 문자열이 x로 끝남 
 .x : 임의의 한 문자를 표현(x가 마지막으로 끝남) 
 x+ : x가 1번이상 반복한다. 
 x? : x가 존재하거나 존재하지 않음. 
 x* : x가 0번이상 반복 
 x|y : x 또는 y를 찾음. 
 (x) : ()안의 내용을 캡쳐하여, 그룹화 한다. 
 (x)(y) : 그룹화 할 때, 자동으로 앞에서부터 1번부터 그룹번호를 부여해서 캡쳐합니다. 결과값에 그룹화한 Data가 배열 형식으로 그룹번호 순서대로 들어갑니다 
 (x)(?:y) : 캡쳐하지 않는 그룹을 생성할 경우 ?:를 사용한다. 결과값 배열에 캡쳐하지 않는 그룹은 들어가지 않는다. 
 x{n} : x를 n번 반복한 문자를 찾습니다. 
 x{n,} : x를 n번이상 반복한 문자를 찾습니다. 
 x{n,m} : x를 n번이상 m번이하 반봇한 문자를 찾습니다. 
  
 [xy] : x,y 중 하나를 찾는다. 
 [^xy] : x,y를 제외하고 문자 하나를 찾는다. 
 [x-z] : x~z 사이의 문자중 하나를 찾는다. 
 \^ : ^(특수문자)를 식에 문자 자체로 포함한다. 
 \b : 문자와 공백사이의  문자를 찾는다. 
 \B : 문자와 공백사이가 아닌 값을 찾는다. 
 \d : 숫자를 찾는다. 
 \D : 숫자가 아닌 값을 찾는다. 
 \s : 공백문자를 찾는다. 
 \S : 공백이 아닌 문자를 찾는다. 
 \t : Tab 문자를 찾는다. 
 \v : Vertical Tab문자를 찾는다. 
 \w : 알파벳 + 숫자 + )를 찾는다. 
 \W : 알파벳 + 숫자 + _을 제외한 모든 문자를 찾는다. 
  
 [:alnum:] 알파벳과 숫자를 찾는다. 
 [:alpha:] 알파벳을 찾는다. 
 [:digit:] 0-9사이의 숫자를 찾는다. 
 [:lower:] 알파벳 소문자를 찾는다. 
 [:upper:] 알파벳 대분자를 찾는다. 
 [:blank:] 탭과 공백문자를 찾는다. 
  
 g(Global) : 패턴에 맞는 모든 문자 찾기 
 i(ignore Case)  대소문자 무시 
 m(Multi line) : 여러 줄 
  
 - ^: 행의 시작을 가리킵니다.

 

곧 숫자로 시작하는 행은 다음과 같이 표현됩니다. 
  ^d.+ 
 - [] : 대괄호는 포함된 문자들 중 하나와 매치하는 문자를 나타냅니다. 즉 [abc]라고 쓰면 a, b, c 중의 한 글자라고 보면 됩니다. 물론 [a-z]와 같이 하이픈을 넣어서 범위 전체를 지정해줄 수 있습니다. 
  [0-9]라고 적으면 한 글자의 숫자를 뜻합니다. 
 - [^abc]: []속에 들어간 ^표시는 이 대괄호에 포함된 글씨는 제외한다는 뜻입니다. 
  즉 S[^cde]m 이라는 정규식은 Sam, Sbm은 매치하지만 Scm, Sdm은 매치하지 않습니다. 
 - $ : 행의 끝을 말합니다.즉 숫자로 끝나는 행은 ^.+[0-9]$와 같이 표현합니다. 
 - . : 마침표는 임의의 한 글자에 해당합니다. 
 - + : 어떤 문자 뒤에 붙어서 해당하는 문자가 1개 이상, 여러개라는 뜻입니다. 
  d+라고 하면 1, 123141, 2513452345234등 길이에 무관하게 연속된 숫자를 찾습니다. 
 - * : X와 비슷하게 어떤 문자 뒤에 붙어서 그 문자가 0개 이상이라는 뜻을 나타냅니다. +는 그 문자가 반드시 한번은나오지만 *는 문자가 나오지 않아도 상관없습니다. 
  sa+m은 sam, saam, saaaaaam에 매치됩니다만 sm에는 매치되지 않습니다. 하지만 sa*m은 sm에도 매치됩니다. 
 - \d : 한 글자의 숫자를 말합니다. (digit) [0-9]와 같습니다. 
 - \w : 한 글자의 문자로 영문대소문자 및 숫자와 밑줄에 해당합니다.. [a-zA-Z0-9_]와 같습니다. 
 - \s : 한 칸의 공백을 의미합니다. 
 - \  : 백 슬래쉬는 이스케이프 문자를 뜻합니다. 즉 ^, [, .과 같은 특수한 의미를 가지는 문자들을 글자 그대로 찾을 때 사용합니다. 
  \[abc\]라고 입력하면 a,b,c 중의 한 글자가 아닌 [abc] 자체에 매치됩니다. 
   
 > 예제 
  [2020-08-26 14:56:48] PI Change : >>HPBA-Q0729<<, 1 
  - HPB.+-[Q]\d{4} 
   1. HPB.+ : 'HPB'로 시작하고 '.+'

는 하나의 임의의 문자 즉 'HPBA' 나 'HPBZ' 같이 하나의 문자가 온다는 뜻 
   2. '-' : - 가 오고 
   3. [Q] : []안의 한 문자 선택, Q 밖에 없어니 Q 선택 
   4. \d{4} : 한글자의 숫자 가 4개 반복 
   
  - >>Line 394 : [21:44:07<< Oct 12 Fri] @0x3924004E|JVM| Free Memory: Heap [ 2368340/ 6291456], Native[ 7299824/32505856]   
  - L.+\[\d{2}:\d{2}:\d{2} 
   1. L.+ : L로 시작하고 1자 이상 
   2. \[ : '['로 시작 
   3. \d{2} : 숫자 2자리 
   
  - PS >>512G<<+DE 48G 1-MCP 256 
  - \d+G 
   1. \d+G : 숫자 1자리 이상반복되고, 'G'로 끝남. 
    
 > 예제 
  정규식 패턴 : ^\w-[\d]+ 
 
  A-285 
  A-285-L 
  A-285-H 
  A-285HH 
  A-285HH-1 
  A-286 
  A-286HH-1 
  A-287 
  A-288 
  A-289 
  A-400UH