본문 바로가기

프로그래밍/JAVA

정규 표현식(Regular Expression) 1

* 정규 표현식(Regular Expression) 이란?

: 특정한 규칙(패턴)을 가진 문자열의 집합을 표현하는데 사용하는 표현식 언어

: 정규 표현식은 주로 텍스트(문자열)를 많이 처리하는 프로그래밍 언어(C, Perl, Java, JavaScript 등)에서

  문자열의 검색과 치환을 위해 주로 사용



* 정규 표현식 문법

  • '.' 특수문자
    - 임의의 한 문자를 의미
      ('.'가 위치한 곳에는 반드시 임의의 한글자가 위치하여야 한다는 의미)

    패턴

     일치하는 문자열

    ab.

    abc, abz 등

    .bc

     abc, zbc 등 

    a.b

     acb, azb 등  

     
  • '*' 특수문자
    - 바로 앞의 문자가 없거나 하나 이상 반복한다는 의미

    패턴

     일치하는 문자열

    Hello*

    Hell, Hello, Helloo, Hellooo 등

    ab*c

    abc, abbc, abbbc 등 

    *a

    표현 불가(*앞에는 반드시 한 글자 이상의 단어가 와야 된다) 

     
  • '+' 특수문자
    - '*'과 비슷하지만, '+'는 반드시 하나 이상의 문자가 반복​

    패턴

     일치하는 문자열

    Hello+

    Hello, Helloo, Hellooo 등

    ab+c

    abc, abbc, abbbc 등 

    a.

    표현 불가



  • '?' 특수문자
    - '?' 바로 앞의 문자가 없거나, 하나임을 의미

    패턴

     일치하는 문자열

    a?c

    c, ac 중 하나

    Hello?

    Hell, Hello 중 하나

    ?a

    표현 불가 

     

     

  • '^' 특수문자
    - 문장의 처음을 나타내며, '^'가 있는 단어로 문장이 시작됨

    패턴

     일치하는 문자열

    ^Hello

    Hello World, Hello Java 등

    ^The

    The Pen, The Book 등 

     

     

  • '$' 특수문자
    - 문장의 끝을 나타내며, '$'가 있는 단어로 문장이 끝남

    패턴

     일치하는 문자열

    World$

    Hi World, Hello World 등

    Java$

    Hi Java, Study Java 등 

     



  • '[ ]' 특수문자 (조건)
    - 괄호 안의 문자 중 일치하는 것을 검색할 경우 사용

    패턴

     일치하는 문자열

    [abc]

    a,b,c,ab,abc 등
    (문자열에 'a','b','c' 등이 있어야 한다)

    [a-z]

    알파벳 소문자가 포함된 모든 문자열(범위) 

    [A-Z]

    알파벳 대문자가 포함된 모든 문자열(범위) 

    [0-9]

    숫자가 포함된 모든 문자열(범위) 

     ^[a-zA-Z0-9]

    영문대소문자 또는 숫자로 시작되는 모든 문자열 검색 

     


     

  • '[ ]' 안에서의 '^' 특수문자(부정)
    - '[ ]' 특수문자 안에 있는 문자를 포함하고 있지 않는 모든 문자열을 찾고자 할 경우

    패턴

     일치하는 문자열

    [^abc]de

    dde, fde, zde 등

    a[^0-9]c

    abc, acc, adc 등 

     


     

  • '{ }' 특수문자
    - '{ }' 특수문자 앞의 문자가 반복되는 횟수를 의미

    패턴

     일치하는 문자열

    Hel{2}o

    Hello

    Ja{5}va

    Jaaaaava

    Ja{3,}va

    Jaaava, Jaaaava 등(3개 이상)

     Ja{2,4}va

    Jaava, Jaaava, Jaaaava (2개이상 4개이하) 

     


     

  • '( )' 특수문자
    - '( )' 안의 문자열을 하나의 문자로 취급

    패턴

     일치하는 문자열

    (Java){3}

    JavaJavaJava

    (Java)*

    Java, JavaJava 등 

    H(el){2}lo

    Helello  

     


     

  • '|' 특수문자
    - OR 연산을 수행

    패턴

     일치하는 문자열

    Hello|Java

    Hello 또는 Java가 포함된 문자열

    Man|Woman

    Man, Woman, ManWoman, SuperMan 등 

     



출처: http://javafactory.tistory.com/1353?category=485631 [FreeLife의 저장소]