자바
배열 안에 특정 문자 규칙을 찾는 로직
pipinstall
2023. 3. 15. 20:08
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() 메소드를 이용하여 해당 부분을 출력합니다.