선행 문자를 1 회 이상 반복 (+ + ?, ++)

메타 문자의 하나 인 "+"를 패턴에 설명하면 "+"직전에 문자가 1 번 이상 반복 된 문자열과 일치합니다.

형식은 다음과 같습니다.

"X +"최장 일치 수량 자 "X +?"최단 일치 수량 자 "X +"탐욕 인 수량

"X +"는 직전의 문자 인 "X"가 1 회 이상 반복 한 것에 일치합니다. 1 회 이상이라는 것은 "X"또는 "XXX"등 "X"가 1 회 이상 반복되는 문자 일치한다는 것입니다. "*"와 달리 1 회도 출현하지 않는 경우는 일치하지 않습니다.

예를 들어 패턴 "aX + b"가 어떤 대상 문자열의 경우와 일치하는 여부는 다음과 같습니다.

패턴 "aX + b"

× ab

○ aXb

○ aXXXb

○ aXXXXXXb

× aYb

구체적으로는 다음과 같이 설명합니다.

String str = "boolean"; String regex = "bo + l"; Pattern p = Pattern.compile (regex); Matcher m = p.matcher (str); if (m.find ()) { System.out.println ( "일치했습니다."); } else { System.out.println ( "일치하지 않습니다"); }

위의 경우 "b"+ "o"가 1 회 이상 + "l"하므로 일치합니다.

샘플 프로그램

그럼 실제로 시도합니다.

import java.util.regex.Pattern; import java.util.regex.Matcher; class JSample4_1 { public static void main (String args []) { String str1 = "bl"; String str2 = "bol"; String str3 = "boool"; String str4 = "baool"; String str5 = "boolean"; String regex = "bo + l"; Pattern p = Pattern.compile (regex); System.out.println ( "패턴 :"+ regex); check (p, str1); check (p, str2); check (p, str3); check (p, str4); check (p, str5); } private static void check (Pattern p, String target) { Matcher m = p.matcher (target); if (m.find ()) { System.out.println ( "○"+ target); } else { System.out.println ( "×"+ target); } } }

컴파일을하신 후 실행 해 봅니다.

이 글을 공유하기

댓글

Designed by JB FACTORY