JavaTM Platform
Standard Ed. 6

java.util.regex
클래스 Pattern

java.lang.Object 
  상위를 확장 java.util.regex.Pattern
모든 구현된 인터페이스:
Serializable


public final class Pattern
extends Object
implements Serializable

컴파일 된 정규 표현입니다.

정규 표현은, 캐릭터 라인으로서 지정해, 이 클래스의 인스턴스에 컴파일 할 필요가 있습니다. 결과적으로 얻을 수 있는 패턴은,Matcher 객체를 작성하기 위해서 사용됩니다. 이 객체는, 임의 문자 순서 곳의 정규 표현을 매치 할 수 있습니다. 매치을 실행했을 때 상태는 모두 정규 표현 엔진에 포함됩니다. 이 때문에, 복수의 정규 표현 엔진이 같은 패턴을 공유할 수 있습니다.

표준적인 calling sequence는, 다음과 같이 됩니다.

 Pattern p = Pattern. compile ("a*b");
 Matcher m = p. matcher ("aaaaab");
 boolean b = m. matches ();

이 클래스에 정의한 matches 메소드를 사용하면, 정규 표현은 한 번 사용하는 것만으로 끝납니다. 이 메소드를 1 회 호출하는 것만으로, 표현이 컴파일 되어 입력 순서와의 매치을 합니다. 다음의 문장은, 전술의 3 개의 문장과 등가입니다.

 boolean b = Pattern.matches("a*b", "aaaaab");
다만, 매치을 반복하는 경우는, 컴파일 된 패턴을 재사용할 수 없기 때문에, 효율이 저하합니다.

이 클래스의 인스턴스는 불변이기 (위해)때문에, 복수의 thread로 병행해 사용할 수 있습니다. Matcher 클래스의 인스턴스는, 복수 thread에서의 병행 사용에 대응하고 있습니다.

정규 표현 구문의 요약

구문 Matches
 
문자
x 문자 x
\\ backslash 문자
\0n 8 진수 0n 를 가지는 문자 (0 <= n <= 7)
\0nn 8 진수 0nn 를 가지는 문자 (0 <= n <= 7)
\0mnn 8 진수 0mnn 를 가지는 문자 (0 <= m <= 3, 0 <= n <= 7)
\xhh 16 진수 0xhh 를 가지는 문자
\uhhhh 16 진수 0xhhhh 를 가지는 문자
\t 탭 문자 ('\u0009')
\n 개행 문자 ('\u000A')
\r 왕복대 리턴 문자 ('\u000D')
\f 용지 보내 문자 ('\u000C')
\a 경고 (벨) 문자 ('\u0007')
\e 이스케이프 문자 ('\u001B')
\cx x 에 대응하는 제어 문자
 
문자 클래스
[abc] a,b, 또는 c (단순 클래스)
[^abc] a,b,c 이외의 문자 (부정)
[a-zA-Z] a ~ z 또는 A ~ Z (범위)
[a-d[m-p]] a ~ d, 또는 m ~ p:[a-dm-p] (결합)
[a-z&&[def]] d,e,f (교차)
[a-z&&[^bc]] bc 를 제외하는 a ~ z:[ad-z] (감산)
[a-z&&[^m-p]] m ~ p 를 제외하는 a ~ z:[a-lq-z] (감산)
 
정의 끝난 문자 클래스
. 임의의 문자 (줄 끝 기호와 매치 하는 경우도 있다)
\d 숫자: [0-9]
\D 숫자 이외: [^0-9]
\s 공백 문자:[ \t\n\x0B\f\r]
\S 비공백 문자:[^\s]
\w 단어 구성 문자:[a-zA-Z_0-9]
\W 비단어 문자:[^\w]
 
POSIX 문자 클래스 (US-ASCII 마셔)
\p{Lower} 소문자의 영문자:[a-z]
\p{Upper} 대문자의 영문자: [A-Z]
\p{ASCII} 모든 ASCII 문자: [\x00-\x7F]
\p{Alpha} 영문자: [\p{Lower}\p{Upper}]
\p{Digit} 10 진수자: [0-9]
\p{Alnum} 영숫자: [\p{Alpha}\p{Digit}]
\p{Punct} 구두점 문자:! "#$%&'()*+,-. /:;<=>? @[\]^_`{|}~ 의 언젠가
\p{Graph} 표시할 수 있는 문자: [\p{Alnum}\p{Punct}]
\p{Print} 프린트 가능 문자: [\p{Graph}\x20]
\p{Blank} 공백 또는 탭:[ \t]
\p{Cntrl} 제어 문자:[\x00-\x1F\x7F]
\p{XDigit} 16 진수자:[0-9a-fA-F]
\p{Space} 공백 문자:[ \t\n\x0B\f\r]
 
java.lang.Character 클래스 (단순한 java 문자 타입)
\p{javaLowerCase} java.lang.Character.isLowerCase()와 등가
\p{javaUpperCase} java.lang.Character.isUpperCase()와 등가
\p{javaWhitespace} java.lang.Character.isWhitespace()와 등가
\p{javaMirrored} java.lang.Character.isMirrored()와 등가
 
Unicode 블록과 카테고리의 클래스
\p{InGreek} 희랍어 블록의 문자 (단순블록)
\p{Lu} 대문자 (단순카테고리)
\p{Sc} 통화 기호
\P{InGreek} 희랍어 블록 이외의 문자 (부정)
[\p{L}&&[^\p{Lu}]]  대문자 이외의 문자 (감산)
 
경계 정규 표현 엔진
^ 행의 선두
$ 행의 말미
\b 단어 경계
\B 비단어 경계
\A 입력의 선두
\G 전회의 매치의 말미
\Z 마지막줄 끝 기호가 있는 경우는, 그것을 제외한 입력의 말미
\z 입력의 말미
 
최장 일치 수량자
X? X, 1 또는 0 회
X* X, 0 회 이상
X+ X, 1 회 이상
X{n} X,n
X{n,} X,n 회이상
X{n,m} X,n 회이상,m 회이하
 
최단 일치 수량자
X?? X, 1 또는 0 회
X*? X, 0 회 이상
X+? X, 1 회 이상
X{n}? X,n
X{n,}? X,n 회이상
X{n,m}? X,n 회이상,m 회이하
 
탐욕인 수량자
X? + X, 1 또는 0 회
X*+ X, 0 회 이상
X++ X, 1 회 이상
X{n}+ X,n
X{n,}+ X,n 회이상
X{n,m}+ X,n 회이상,m 회이하
 
논리 연산자
XY X 의 직후에 Y
X|Y X 또는 Y
(X) X,전방 참조를 실시하는 정규 표현 그룹
 
전방 참조
\n 매치 한 n 번째의전방 참조를 실시하는 정규 표현 그룹
 
인용
\ 정규 표현은 아니지만, 다음의 문자를 이스케이프 한다
\Q 정규 표현은 아니지만,\E 까지의 모든 문자를 이스케이프 한다
\E 정규 표현은 아니지만,\Q 로 개시된 인용을 이스케이프 한다
 
특수한 구문 (전방 참조를 실시하지 않는다)
(? :X) X, 전방 참조를 실시하지 않는 정규 표현 그룹
(? idmsux-idmsux)   정규 표현은 아니지만, 매치 플래그 i ,d ,m ,s ,u ,x 의 온/오프를 바꾼다
(? idmsux-idmsux:X)   X,전방 참조를 실시하지 않는 그룹 . 지정된 플래그 i ,d ,m ,s ,u,x 의 온/오프를 바꾼다
(? =X) X, 폭제로의 긍정 예측
(?!X) X, 폭제로의 부정 예측
(? <=X) X, 폭제로의 긍정 후 읽기
(? <! X) X, 폭제로의 부정 후 읽기
(? >X) X, 독립한 전방 참조를 실시하지 않는 정규 표현 그룹

backslash, 이스케이프, 및 인용

backslash 문자 ('\')는, 전술의 겉(표)에 정의되고 있는 구문을 이스케이프 합니다. 또, 지정하지 않았던 경우는, 이스케이프되어 있지 않다고 해석되는 캐릭터 라인을 인용합니다. 예를 들어, 정규 표현 \\ 은 1 개의 backslash와 매치 해,\{ 는 왼쪽 괄호와 매치 합니다.

영문자의 전에 backslash를 사용했을 때에, 그 영문자가 이스케이프 구문이 아닌 경우는, 에러가 됩니다. 이러한 패턴은, 정규 표현 언어의 향후의 확장에 예약되고 있습니다. 영문자 이외의 문자의 경우는, 그 문자가 이스케이프 구문에 포함될지 어떨지에 관계없이, backslash를 지정할 수 있습니다.

Java 언어 스펙에서는,Java 원시 코드의 캐릭터 라인 리터럴에 포함되는 backslash는,Unicode 이스케이프등의문자 이스케이프로서 유효하다라고 해석됩니다. 이 때문에, backslash가 Java 바이트 코드 컴파일러에 의해 해석되지 않게 하려면 , 정규 표현을 나타내는 캐릭터 라인 리터럴내에서 backslash를 2 개 계속할 필요가 있습니다. 예를 들어, 캐릭터 라인 리터럴 "\b" 는, 정규 표현이라고 해석되면(자), 백 스페이스 1 문자와 매치 됩니다. 그러나,"\\b" 는 단어 경계와 매치 됩니다. 또, 캐릭터 라인 리터럴 "\(hello\)" 은 부당하게 되어, 컴파일시 에러가 발생합니다. 캐릭터 라인 (hello) 과 매치 되려면 , 캐릭터 라인 리터럴 "\\(hello\\)" 을 사용할 필요가 있습니다.

문자 클래스

문자 클래스는, 다른 문자 클래스내로 지정하거나 결합 연산자 (암묵적)나 교차 연산자 (&&)를 사용해 작성할 수가 있습니다. 결합 연산자는, 1 개(살) 이상의 오퍼랜드 클래스에 포함되는 모든 문자를 포함한 클래스를 나타냅니다. 교차 연산자는, 2 개의 오퍼랜드 클래스에 포함되는 모든 문자를 포함한 클래스를 나타냅니다.

문자 클래스 연산자는, 다음의 순서로 우선 순위가 높아집니다.

1     리터럴 이스케이프      \x
2     그룹화 [...]
3     Range a-z
4     논리합 [a-e][i-u]
5     논리적 [a-z&&[aeiou]]

실제로는, 다른 메타캐라크타세트는, 문자 클래스의 외부는 아니고 내부에 존재하는 것에 유의해 주세요. 예를 들어, 정규 표현 . (은)는, 문자 클래스 내부에서는 그 특수한 의미를 잃습니다만, 표현 - 은 범위를 나타내는 메타캐라크타가 됩니다.

줄 끝 기호

「줄 끝 기호」란, 입력 문자 순서의 행의 말미를 지정할 경우에 사용하는, 1 문자 또는 2 문자의 문자 순서입니다. 다음의 문자가 줄 끝 기호로서 인식됩니다.

UNIX_LINES 모드가 유효한 경우는, 개행 문자만이 줄 끝 기호로서 인식됩니다.

정규 표현 . (은)는,DOTALL 플래그가 지정되어 있지 않은 경우, 줄 끝 기호 이외의 모든 문자와 매치 합니다.

디폴트에서는, 정규 표현 ^$ 하행말 기호를 무시해, 입력 순서 전체의 각각 선두와 말미인 만큼 매치 합니다. MULTILINE 모드가 액티브하게 되면(자),^ 는 입력의 선두, 및 입력의 말미를 제외한 모든 줄 끝 기호의 뒤에 매치 합니다. MULTILINE 모드의 경우,$ 하행말 기호의 직전, 또는 입력 순서의 말미에 매치 합니다.

정규 표현 그룹과 전방 참조

전방 참조를 실시하는 정규 표현 그룹에는, 왼쪽에서 우측향에 왼쪽환괄호를 세는 것에 의해, 번호를 붙일 수 있습니다. 예를 들어, 표현 ((A)(B(C))) 는, 다음의 4 개의 그룹으로 분류됩니다.

1     ((A)(B(C)))
2     (A)
3     (B(C))
4     (C)

그룹 0 은, 항상 표현 전체를 나타냅니다.

전방 참조를 실시하는 정규 표현 그룹이 이와 같이 분류되고 나서, 입력 순서의 각 부분 순서가 이러한 그룹과 매치 되어 매치 할 때마다 부분 순서가 보존됩니다. 정규 표현 그룹의 부분 순서는, 전방 참조로서 표현내에서 나중에 사용할 수 있겠습니다. 또, 매치 조작이 완료하면(자), 정규 표현 엔진으로부터 꺼낼 수도 있습니다.

그룹과 입력 순서가 매치 되면(자), 그 그룹과 마지막에 매치 한 부분 순서가 항상 전방 참조됩니다. 수량자를 지정했을 경우는, 그룹이 한번 더 평가됩니다. 2 번째의 평가가 실패했을 경우에서도, 그 전에 전방 참조된 값이 있는 경우는, 그 값이 보관 유지됩니다. 예를 들어, 캐릭터 라인 "aba" 를 표현 (a(b)? )+ (와)과 매치 했을 경우는, 그룹 2 로 설정된 "b" 가 보관 유지됩니다. 전방 참조된 모든 입력은, 각 매치가 시작되기 전에 파기됩니다.

(? 그리고 시작되는 그룹은, 순수한 「전방 참조되지 않는 정규 표현」그룹에서, 텍스트를 전방 참조하지 않고, 그룹 전체에 카운트 되지 않습니다.

Unicode 지원

이 클래스는,「Unicode Technical Standard #18: Unicode Regular Expression Guidelines」 (Unicode 테크니컬 스탠다드 No. 18:Unicode 정규 표현 가이드 라인) 및, 릴리스 2.1 「Canonical Equivalents」 (정규 등가)을 참조해 주세요.

Java 원시 코드에서는,\u2014 등의 Unicode escape sequence는, 「Java 언어 스펙」의 3.3 에 근거해 처리됩니다. 이러한 escape sequence는, 정규 표현 퍼서에 의해 직접 구현되기 (위해)때문에, 파일 또는 키보드로부터 읽어들인 표현 중(안)에서도 Unicode 이스케이프를 사용할 수 있습니다. 즉, 캐릭터 라인 "\u2014""\\u2014" 는 등가가 아닙니다만, 같은 패턴에 컴파일 되어 16 진수 0x2014 의 문자와 매치 합니다.

Unicode 블록 및 카테고리는, Perl 와 같게 \p\P 구문으로 기술합니다. 입력에 프로퍼티 prop 가 포함되는 경우,\p{prop} 는 매치 합니다만,\P{prop} 는 매치 하지 않습니다. 블록에는,InMongolian 와 같이, 접두사 In 를 지정합니다. 카테고리에는, 접두사 Is 를 지정할 수도 있습니다. \p{L}\p{IsL} 는, Unicode 문자의 카테고리를 나타냅니다. 블록과 카테고리는, 문자 클래스의 내부 및 외부의 어느 쪽에도 사용할 수 있습니다.

지원되고 있는 카테고리는,Character 클래스에서 지정된 버젼의 The Unicode Standard 에 기재되어 있습니다. 카테고리명에 대해서는, Unicode 표준에 규준과 정보가 정의되고 있습니다. Pattern 의 지원하는 블록명은,UnicodeBlock.forName 에 의해 받아들여져 정의되는 유효한 블록명입니다.

methodname 메소드 (비추천의 메소드를 제외하다)인 java.lang.Character boolean 와 같게 기능하는 카테고리는, 지정된 프로퍼티이 이름 javamethodname 를 가지는, 동일한 \p{prop} 구문 전체로 사용 가능합니다.

Perl 5 라는 비교

Pattern 엔진은, Perl 5 로 같이, 순서 붙이고 된 대체에 대한 종래의 NFA 베이스의 매칭을 실행합니다.

이 클래스에서 지원되어 있지 않은 Perl 구문

이 클래스에서 지원되고 있지만, Perl 로 지원되어 있지 않은 구문 탐욕인 수량자.

Perl 와의 큰 차이점

정규 표현 구문의 동작의 상세한 것에 대하여는,「Mastering Regular Expressions, 2nd Edition」 (Jeffrey E. F. Friedl 저, O'Reilly and Associates, 2002 년) 을 참조해 주세요.

도입된 버젼:
1.4
관련 항목:
String.split(String, int) , String.split(String) , 직렬화 된 형식

필드의 개요
static int CANON_EQ
          정규 등가를 유효하게 합니다.
static int CASE_INSENSITIVE
          대문자와 소문자를 구별하지 않는 매칭을 유효하게 합니다.
static int COMMENTS
          패턴내에서 공백과 코멘트를 사용할 수 있도록(듯이) 합니다.
static int DOTALL
          DOTALL 모드를 유효하게 합니다.
static int LITERAL
          패턴의 리터럴 구문 분석을 유효하게 합니다.
static int MULTILINE
          복수행 모드를 유효하게 합니다.
static int UNICODE_CASE
          Unicode 에 준거한 대문자와 소문자를 구별하지 않는 매칭을 유효하게 합니다.
static int UNIX_LINES
          Unix 라인 모드를 유효하게 합니다.
 
메소드의 개요
static Pattern compile (String  regex)
          지정된 정규 표현을 패턴에 컴파일 합니다.
static Pattern compile (String  regex, int flags)
          지정된 플래그를 사용해, 지정된 정규 표현을 패턴에 컴파일 합니다.
 int flags ()
          이 패턴의 매치 플래그를 돌려줍니다.
 Matcher matcher (CharSequence  input)
          지정된 입력과 이 패턴을 매치 하는 정규 표현 엔진을 작성합니다.
static boolean matches (String  regex, CharSequence  input)
          지정된 정규 표현을 컴파일 해, 지정된 입력과 그 정규 표현을 매치 합니다.
 String pattern ()
          이 패턴의 컴파일원의 정규 표현을 돌려줍니다.
static String quote (String  s)
          지정된 String 의 리터럴 패턴 String 를 돌려줍니다.
 String [] split (CharSequence  input)
          이 패턴의 매치에 근거해, 지정된 입력 순서를 분할합니다.
 String [] split (CharSequence  input, int limit)
          이 패턴의 매치에 근거해, 지정된 입력 순서를 분할합니다.
 String toString ()
          이 패턴의 캐릭터 라인 표현을 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

필드의 상세

UNIX_LINES

public static final int UNIX_LINES
Unix 라인 모드를 유효하게 합니다.

이 모드에서는,'\n' 줄 끝 기호 이외는,. ,^,$ 의 동작으로 인식되지 않습니다.

Unix 라인 모드는, 매입 플래그 표현  (? d) 사용해 유효하게 할 수도 있습니다.

관련 항목:
정수 필드치

CASE_INSENSITIVE

public static final int CASE_INSENSITIVE
대문자와 소문자를 구별하지 않는 매칭을 유효하게 합니다.

디폴트의 대문자와 소문자를 구별하지 않는 매칭에서는, US-ASCII 캐릭터 세트의 문자만이 매치 합니다. Unicode 에 준거한 대문자와 소문자를 구별하지 않는 매칭을 유효하게 하려면 ,UNICODE_CASE 플래그를 이 플래그와 조합해 지정합니다.

대문자와 소문자를 구별하지 않는 매칭은, 매입 플래그 표현  (? i) 를 사용해 유효하게 할 수도 있습니다.

이 플래그를 지정하면(자), 퍼포먼스가 조금 저하하는 경우가 있습니다.

관련 항목:
정수 필드치

COMMENTS

public static final int COMMENTS
패턴내에서 공백과 코멘트를 사용할 수 있도록(듯이) 합니다.

이 모드에서는, 공백은 무시되어# 로 시작되는 매입 코멘트는 줄 끝까지 무시됩니다.

코멘트 모드는, 매입 플래그 표현  (? x) 를 사용해 유효하게 할 수도 있습니다.

관련 항목:
정수 필드치

MULTILINE

public static final int MULTILINE
복수행 모드를 유효하게 합니다.

복수행 모드에서는, 표현 ^$ 는, 각각 줄 끝 기호 또는 입력 순서의 말미의 직후 또는 직전에 매치 합니다. 디폴트에서는, 이러한 표현은 입력 순서 전체의 선두와 말미에만 매치 합니다.

복수행 모드는, 매입 플래그 표현  (? m) 를 사용해 유효하게 할 수도 있습니다.

관련 항목:
정수 필드치

LITERAL

public static final int LITERAL
패턴의 리터럴 구문 분석을 유효하게 합니다.

이 플래그가 지정되고 있는 경우, 패턴을 지정하는 입력 캐릭터 라인은, 리터럴 문자의 순서로서 처리됩니다. 입력 순서내의 메타캐라크타 또는 escape sequence에, 특별한 의미는 없습니다.

CASE_INSENSITIVE 및 UNICODE_CASE 플래그를 이 플래그와 함께 사용하면(자), 매칭에 대한 영향이 유지됩니다. 다른 플래그는 불필요하게 됩니다.

리터럴 구문 분석을 유효하게하기 위한 매입 플래그 문자는 없습니다.

도입된 버젼:
1.5
관련 항목:
정수 필드치

DOTALL

public static final int DOTALL
DOTALL 모드를 유효하게 합니다.

DOTALL 모드에서는, 표현 . 하행말 기호를 포함한 임의의 문자에 매치 합니다. 디폴트에서는, 이 표현은 줄 끝 기호에 매치 하지 않습니다.

DOTALL 모드는, 매입 플래그 표현  (? s) 를 사용해 유효하게 할 수도 있습니다. (s 는 「single-line (단일행)」모드의 니마닉(mnemonic). Perl 에서는 이렇게 불리고 있다. )

관련 항목:
정수 필드치

UNICODE_CASE

public static final int UNICODE_CASE
Unicode 에 준거한 대문자와 소문자를 구별하지 않는 매칭을 유효하게 합니다.

이 플래그와 CASE_INSENSITIVE 플래그를 동시에 지정했을 경우는, Unicode 표준에 준거한 대문자와 소문자를 구별하지 않는 매칭을 합니다. 디폴트의 대문자와 소문자를 구별하지 않는 매칭에서는, US-ASCII 캐릭터 세트의 문자만이 매치 합니다.

Unicode 에 준거한 대문자와 소문자를 구별하지 않는 매칭은, 매입 플래그 표현  (? u) 를 사용해 유효하게 할 수도 있습니다.

이 플래그를 지정하면(자), 퍼포먼스가 저하하는 경우가 있습니다.

관련 항목:
정수 필드치

CANON_EQ

public static final int CANON_EQ
정규 등가를 유효하게 합니다.

이 플래그를 지정했을 때는, 2 개의 문자의 완전한 정규 분해가 매치 했을 경우에 한정해, 그러한 문자가 매치 한다고 보입니다. 예를 들어, 이 플래그를 지정하면(자), 표현 "a\u030A" 는 캐릭터 라인 "\u00E5" 에 매치 합니다. 디폴트의 매칭에서는, 정규 등가가 고려되지 않습니다.

정규 등가를 유효하게하기 위한 매입 플래그 문자는 없습니다.

이 플래그를 지정하면(자), 퍼포먼스가 저하하는 경우가 있습니다.

관련 항목:
정수 필드치
메소드의 상세

compile

public static Pattern  compile(String  regex)
지정된 정규 표현을 패턴에 컴파일 합니다.

파라미터:
regex - 컴파일 되는 표현
예외:
PatternSyntaxException - 표현의 구문이 무효인 경우

compile

public static Pattern  compile(String  regex,
                              int flags)
지정된 플래그를 사용해, 지정된 정규 표현을 패턴에 컴파일 합니다.

파라미터:
regex - 컴파일 되는 표현
flags - 매치 플래그. CASE_INSENSITIVE ,MULTILINE ,DOTALL ,UNICODE_CASE ,CANON_EQ ,UNIX_LINES ,LITERAL , 및 COMMENTS 를 포함할 수 있는 비트 마스크
예외:
IllegalArgumentException - 정의가 끝난 매치 플래그에 대응하는 비트치 이외의 값이 flags 로 설정되어 있는 경우
PatternSyntaxException - 표현의 구문이 무효인 경우

pattern

public String  pattern()
이 패턴의 컴파일원의 정규 표현을 돌려줍니다.

반환값:
이 패턴의 컴파일원

toString

public String  toString()

이 패턴의 캐릭터 라인 표현을 돌려줍니다. 이것은, 이 패턴의 컴파일원의 정규 표현입니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 패턴의 캐릭터 라인 표현
도입된 버젼:
1.5

matcher

public Matcher  matcher(CharSequence  input)
지정된 입력과 이 패턴을 매치 하는 정규 표현 엔진을 작성합니다.

파라미터:
input - 매치되는 문자 순서
반환값:
이 패턴의 새로운 정규 표현 엔진

flags

public int flags()
이 패턴의 매치 플래그를 돌려줍니다.

반환값:
이 패턴이 컴파일 되었을 때에 지정된 매치 플래그

matches

public static boolean matches(String  regex,
                              CharSequence  input)
지정된 정규 표현을 컴파일 해, 지정된 입력과 그 정규 표현을 매치 합니다.

이 메소드를 다음의 형식에서 호출하면(자), 상기의 동작을 합니다.

 Pattern.matches(regex, input);
상기의 메소드는, 다음의 표현과 같게 동작합니다.
 Pattern.compile(regex). matcher(input). matches()

패턴을 반복해 사용하는 경우는, 그 패턴을 컴파일 해 재사용한 (분)편이, 매회 이 메소드를 호출하는 것보다도 효율적입니다.

파라미터:
regex - 컴파일 되는 표현
input - 매치되는 문자 순서
예외:
PatternSyntaxException - 표현의 구문이 무효인 경우

split

public String [] split(CharSequence  input,
                      int limit)
이 패턴의 매치에 근거해, 지정된 입력 순서를 분할합니다.

이 메소드로부터 반환되는 배열은, 입력 순서의 부분 캐릭터 라인으로 구성됩니다. 이러한 부분 캐릭터 라인은, 이 패턴과 매치 하는 다른 부분 순서에 의해 분할된 캐릭터 라인인가, 입력 순서의 종료에 의해 분할된 캐릭터 라인입니다. 배열내의 부분 캐릭터 라인은, 입력 순서내에서 발생한 차례로 줄지어 있습니다. 이 패턴이 입력 순서의 부분 순서에 매치 하지 않는 경우, 결과적으로 얻을 수 있는 배열은 1 개의 요소, 즉 캐릭터 라인 형식의 입력 순서만으로 구성됩니다.

limit 파라미터는, 이 패턴의 적용 회수, 즉, 결과적으로 얻을 수 있는 배열의 길이를 제어합니다. 제한 n 가 제로보다 큰 경우, 이 패턴은 n - 1 회이하의 회수가 적용되어 배열의 길이는 n 이하가 됩니다. 배열의 마지막 엔트리에는, 마지막에 매치 한 단락 문자 이후의 입력 순서가 모두 포함됩니다. n 가 0 보다 작은 값의 경우, 이 패턴의 적용 회수와 배열의 길이는 제한되지 않습니다. n 가 제로의 경우, 이 패턴의 적용 회수와 배열의 길이는 제한됩니다만, 후속의 빈 상태(empty)의 캐릭터 라인은 파기됩니다.

예를 들어, 입력 순서 "boo:and:foo" 는, 이러한 파라미터에 의해 다음과 같이 분할됩니다.

정규 표현     

제한     

결과     

: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }

파라미터:
input - 분할되는 문자 순서
limit - 결과의 임계치 (상기대로)
반환값:
이 패턴의 매치의 양단으로 입력을 분할하는 것에 의해 계산된 캐릭터 라인의 배열

split

public String [] split(CharSequence  input)
이 패턴의 매치에 근거해, 지정된 입력 순서를 분할합니다.

이 메소드는, limit 인수를 제로로 해 split 메소드를 호출했을 경우와 같게 입력 순서를 분할합니다. 즉, 결과적으로 얻을 수 있는 배열에는 후속의 빈 상태(empty)의 캐릭터 라인은 포함되지 않습니다.

예를 들어, 입력 순서 "boo:and:foo" 는, 이러한 표현에 의해 다음과 같이 분할됩니다.

정규 표현     

결과

: { "boo", "and", "foo" }
o { "b", "", ":and:f" }

파라미터:
input - 분할되는 문자 순서
반환값:
이 패턴의 매치의 양단으로 입력을 분할하는 것에 의해 계산된 캐릭터 라인의 배열

quote

public static String  quote(String  s)
지정된 String 의 리터럴 패턴 String 를 돌려줍니다.

이 메소드는, 리터럴 패턴인것 같이 캐릭터 라인 s 에 매치 하는 Pattern 의 작성에 사용 가능한 String 를 생성합니다.

입력 순서내의 메타캐라크타 또는 escape sequence에, 특별한 의미는 없습니다.

파라미터:
s - 리터럴화하는 캐릭터 라인
반환값:
리터럴 캐릭터 라인 치환
도입된 버젼:
1.5

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.