[java] Jansi를 이용하여 자바 애플리케이션에서 터미널에서 정규식을 이용한 문자열 검색하기
Jansi는 자바에서 ANSI 이스케이프 시퀀스를 처리하는 라이브러리입니다. 이를 통해 자바 애플리케이션에서 터미널 환경에서 ANSI 색상, 스타일 및 커서 제어를 사용할 수 있습니다.
이번 예제에서는 Jansi를 사용하여 터미널에서 정규식을 이용하여 문자열을 검색하는 방법을 살펴보겠습니다.
Jansi 설치하기
Jansi를 사용하기 위해 다음과 같이 Maven 의존성을 추가해야 합니다.
<dependency>
<groupId>org.fusesource.jansi</groupId>
<artifactId>jansi</artifactId>
<version>1.18</version>
</dependency>
정규식을 이용한 문자열 검색하기
아래 예제 코드는 Jansi를 사용하여 터미널에서 입력한 문자열 중에서 정규식 패턴과 일치하는 문자열을 검색하는 기능을 구현한 것입니다.
import org.fusesource.jansi.AnsiConsole;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TerminalSearch {
public static void main(String[] args) {
// ANSI 색상 지원을 위해 AnsiConsole.systemInstall()을 호출합니다.
AnsiConsole.systemInstall();
// 사용자로부터 입력을 받기 위해 Scanner를 생성합니다.
Scanner scanner = new Scanner(System.in);
System.out.print("검색할 문자열을 입력하세요: ");
String input = scanner.nextLine();
System.out.print("정규식 패턴을 입력하세요: ");
String regexPattern = scanner.nextLine();
// 입력한 정규식 패턴을 컴파일합니다.
Pattern pattern = Pattern.compile(regexPattern);
// 검색 대상 문자열에 대해 정규식 패턴을 검색합니다.
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
// 매칭된 문자열에 ANSI 색상 및 스타일을 적용하여 출력합니다.
System.out.println(AnsiConsole.ansi().fg(AnsiConsole.Color.RED).a(matcher.group()).reset());
}
// Scanner를 닫습니다.
scanner.close();
// ANSI 색상 지원을 해제합니다.
AnsiConsole.systemUninstall();
}
}
위 예제 코드를 실행하고 터미널에서 검색할 문자열과 정규식 패턴을 입력하면 입력한 문자열 중에서 정규식 패턴과 일치하는 문자열이 강조되어 출력됩니다.
터미널 환경에서 문자열을 검색할 때 Jansi를 이용하면 보다 직관적이고 다양한 검색 결과를 표현할 수 있습니다.