JAVA Regex


자바 Regex, Regular Expression ( 정규 표현식 )은 검색이나, 문자열을 처리하기 위한 패턴을 정의하는 API 입니다.


이것은 패스워드나 이메일 확인 같은 문자열의 제한조건을 나타내기 위해 넓게 사용됩니다.

자바 정규 표현식 튜토리얼을 배우고 난 뒤, 여러분은 자바 정규표현식 테스터 툴을 이용해 여러분 스스로 자신의 정규 표현식을 테스트 할 수 있습니다. 



자바 정규표현 API 는 Java.util.regex package로 1개의 인터페이스와 3개의 클래스를 제공합니다. 





Java.util.regex package


이것은 정규표현식을 위해 아래의 클래스를 제공합니다. 

ㅡ자바 정규 표현식에서 Matcher 와 Pattern 클래스는 넓게 사용됩니다.


1. MatchResult interface

2. Matcher class

3. Pattern class

4. patternSyntaxException class






Matcher class


이것은 MatchResult 인터페이스를 구현합니다.    

이 클래스는 문자 시퀀스에서 동일한 오퍼레이션을 수행하기 위해 사용되는, 정규표현 엔진입니다. 




NO

Method       

 Description

 1

 boolean matches ()

    정규표현식이 패턴에 일치하는지 여부를 테스트한다. 

 2

 boolean find ()

    패턴에 일치하는 다음 표현식을 찾는다.

 3

 boolean find(int start)

    주어진 시작 숫자부터 패턴에 일치하는 다음 표현식을 찾는다.




Pattern class


정규표현식의 컴파일된 버전으로, 정규표현 엔진의 패턴을 규정하는 데 사용됩니다. 



NO

Method  

 Description

 1

 static pattern compile (String regex)

 주어진 정규표현식을 컴파일하고, 인터페이스패턴을 반환한다. 

 2

 Matcher matcher (CharSequence input)

 주어진 입력, 패턴과 일치하는 matcher를 만든다

 3

 static boolean matches (String regex,  CharSequence input)

 컴파일과 matcher 메소드의 결합으로 동작한다. 정규표현식을 컴파일  하고, 주어진 입력 패턴을 일치하게 한다. 

 4

 String [] split (CharSequence input)

 주어진 패턴에 맞는 주어진 입력 문자열을 나눈다.

 5

 String pattern ()

 정규표현식 패턴을 반환한다.



Example of Java Regular Expressions


정규표현식을 적는 3가지 방법이 있습니다.



import java.util.regex.*;

public class RegexExample1{

public static void main(String args[]){

//1번째

Pattern p = Pattern.compile(".s"); //. 단일 문자를 나타낸다.

Matcher m = p.matcher("as");

boolean b = m.matches();

//2번째

boolean b2=Pattern.compile(".s").matcher("as").matches();

//3번째

boolean b3 = Pattern.matches(".s", "as");

System.out.println(b+" "+b2+" "+b3);

}}


output

true true true




Regular Expression  . Example


 이 . (dot) 도트는 단일 문자를 나타냅니다.




import java.util.regex.*;

class RegexExample2{

public static void main(String args[]){

System.out.println(Pattern.matches(".s", "as")); //true (2번째 문자가 s이다)

System.out.println(Pattern.matches(".s", "mk")); //false (2번째 문자가 s가 아니다)

System.out.println(Pattern.matches(".s", "mst")); //false (문자가 3개다)

System.out.println(Pattern.matches(".s", "amms")); //false (문자가 4개다)

System.out.println(Pattern.matches("..s", "mas")); //true (3번째 문자가 s이다)

}} 










Regular Character classes



 NO

 Character Class

Description

 1

 [abc] 

 a, b or c ( 단일 클래스)

 2

 [^abc] 

 a, b, c을 제외한 문자 ( 부정 ) 

 3

 [a-zA-Z] 

 a ~ z, 혹은 A ~ Z, 포함 ( 범위 )

 4

 [a-d[m-p]] 

 a ~ d, 혹은 m ~ p : [a-dm-p]  ( 집합 ) 

 5

 [a-z&&[def]] 

 d, e, 혹은 f ( 교차 )

 6

 [a-z&&[^bc]] 

 a ~ z, b 와 c를 제외하고, [ad-z] ( 빼기 ) 

 7

 [a-z&&[^m-p]]

 a ~ z, 그리고 m ~ p 는 아님. [a-lq-z] ( 빼기 )




Regular Expression Character classes Example




import java.util.regex.*;

class RegexExample3{

public static void main(String args[]){

System.out.println(Pattern.matches("[amn]", "abcd")); //false (a가 없거나 m이 없거나 n이 없거나)

System.out.println(Pattern.matches("[amn]", "a")); //true (문자 중에 a 혹은 m 혹은 n 이 있음)

System.out.println(Pattern.matches("[amn]", "ammmna")); //false (m 과 a 문자가 한번 이상임)

}}








Regular Quantifiers


 수와 양 수식사는 문자 실현 숫자를 지정합니다.



 Regex

 Description

 X?

 X 한번 발생 혹은 전혀 발생하지 않음

 X+

 X 한번 혹은 그 이상 발생

 X*

 X 제로 혹은 그 이상 발생

 X{n}

 X 오직 n 번 발생

 X{n,}

 X n 번 혹은 그 이상 발생

 X{y,z}

 X 적어도 y번 발생 하지만 z 번 보다는 적음



Regular Expression Character classes and Quantifiers Example



import java.util.regex.*;

class RegexExample4{

public static void main(String args[]){

System.out.println("? quantifier ....");

System.out.println(Pattern.matches("[amn]?", "a")); //true (a or m or n 이 한번)

System.out.println(Pattern.matches("[amn]?", "aaa")); //false (a가 한 번 이상인 경우)

System.out.println(Pattern.matches("[amn]?", "aammmnn")); //false (a m and n 가 한 번 이상인 경우)

System.out.println(Pattern.matches("[amn]?", "aazzta")); //false (a 가 한 번 이상인 경우)

System.out.println(Pattern.matches("[amn]?", "am")); //false (a or m or n 가 반드시 한 번 있다면)

System.out.println("+ quantifier ....");

System.out.println(Pattern.matches("[amn]+", "a")); //true (a or m or n 가 한 번 혹은 그 이상인 경우)

System.out.println(Pattern.matches("[amn]+", "aaa")); //true (a 가 한 번 보다 많은 경우)

System.out.println(Pattern.matches("[amn]+", "aammmnn")); //true (a or m or n 가 한 번 이상인 경우)

System.out.println(Pattern.matches("[amn]+", "aazzta")); //false (z 와 t 가 맞는 것이 없음)

System.out.println("* quantifier ....");

System.out.println(Pattern.matches("[amn]*", "ammmna")); //true (a or m or n 가 제로이거나 그 이상인 경우)

}}
















영어원문내용출처 :http://www.javatpoint.com/

번역,의역 및 작성 : 초코토끼

검수 : 개발토끼

오역 및 오타의 지적은 겸손히 받겠습니다.








+ Recent posts