import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ArrayRegex {
public static void main(String[] args) {
String[] arr = {"abc123", "def456", "ghi789", "jkl101112"};
String regex = "[a-z]{3}\\d{3}"; // 알파벳 3자리와 숫자 3자리
Pattern pattern = Pattern.compile(regex);
for (String s : arr) {
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println(s + " : " + matcher.group());
}
}
}
}
위 코드에서는 String 배열 arr 안에 알파벳 3자리와 숫자 3자리가 붙어있는 문자열을 찾는 예시입니다.
regex 변수에는 찾고자 하는 문자 규칙을 정규식으로 작성합니다. 위 코드에서는 [a-z]{3}\\d{3}으로,
- [a-z]는 알파벳 소문자를 의미합니다.
- {3}는 앞선 문자가 3번 반복되는 것을 의미합니다.
- \\d는 숫자를 의미합니다.
- \\d{3}는 숫자가 3번 반복되는 것을 의미합니다.
- Pattern 클래스의 compile() 메소드를 이용하여 정규식을 컴파일한 뒤, Matcher 클래스의 matcher() 메소드를 이용하여 String 배열 각 요소에 대한 매칭을 수행합니다.
- find() 메소드는 해당 문자열에서 패턴과 일치하는 부분이 있는지 찾아줍니다.
매칭이 되는 경우 group() 메소드를 이용하여 해당 부분을 출력합니다.
'자바' 카테고리의 다른 글
thread 활용방법 (0) | 2023.03.15 |
---|---|
최소 공약수 구하기 (0) | 2023.01.10 |
문자열을 바이트단위로 자르기 (1) | 2023.01.10 |
[오류]Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)' in eclipse (0) | 2022.11.08 |
[TIFF FILE TO PDF] tiff 파일을 pdf로 변환 (1) | 2022.11.02 |