본문 바로가기

삽질하기/JAVA

자바(Java) 정규표현식 Lookaround 예제

반응형
Positive Lookahead 예제
'abc' 또는 '123' 문자열로 시작하면서 a-z,0-9로 이루어진 문자열을 찾는 정규표현식
public class RegularExpressionTest 
{
    public static void main(String[] args)
    {
        String input = "123onetwothree";
        String regex = "(?=abc|123)[a-z0-9]+";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        if(matcher.find()) {
            System.out.println(matcher.group());
        } else {
            System.out.println("Not Found!!!");
        }
    }
}
결과 : 123onetwothree

Positive Lookhehind 예제
a-z,0-9로 이루어진 문자열 중에 'abc' 또는 '123' 문자열로 끝나는 정규표현식
public class RegularExpressionTest 
{
    public static void main(String[] args) 
    {
        String input = "onetwothree123";
        String regex = "[a-z0-9]+(?<=abc|123)";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
		
        if(matcher.find()) {
            System.out.println(matcher.group());
        } else {
            System.out.println("Not Found!!!");
        }
    }
}
결과 : onetwothree123

Negative Lookahead 예제
'USD' 또는 'JPY'로 시작하지 않은 A-Z의 3자리 문자열을 찾는 정규표현식
public class RegularExpressionTest 
{
    public static void main(String[] args) 
    {
        String input = "KRW123";
        String regex = "(?!USD|JPY)[A-Z]{3}";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
		
        if(matcher.find()) {
            System.out.println(matcher.group());
        } else {
            System.out.println("Not Found!!!");
        }
    }
}
결과 : KRW

Negative Lookahead 예제
'USD' 또는 'JPY'로 끝나지 않은 A-Z의 3자리 문자열을 찾는 정규표현식
public class RegularExpressionTest 
{
    public static void main(String[] args) 
    {
        String input = "123KRW";
        String regex = "[A-Z]{3}(?<!USD|JPY)";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
		
        if(matcher.find()) {
            System.out.println(matcher.group());
        } else {
            System.out.println("Not Found!!!");
        }
    }
}
결과 : KRW