728x90
반응형
이 프로그램은 다양한 정규식을 활용하여 이메일, 전화번호, 단어, 날짜, 이름, 비밀번호의 유효성을 검사하고, 문자열에서 특정 패턴을 교체하는 예제를 보여줍니다. 각 정규식은 해당 패턴을 정확히 매칭하거나 원하는 부분을 추출하기 위해 설계되었습니다.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexExamples {
public static void main(String[] args) {
// 이메일 주소 유효성 검사
String inputEmail = "example@gmail.com";
String emailPattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
System.out.println("이메일 유효성 검사: " + inputEmail.matches(emailPattern));
// 전화번호 유효성 검사 (예: 123-456-7890, 1234567890)
String inputPhone = "123-456-7890";
String phonePattern = "^\\d{3}-?\\d{3}-?\\d{4}$";
System.out.println("전화번호 유효성 검사: " + inputPhone.matches(phonePattern));
// 문장에서 단어 추출
String sentence = "자바 정규 표현식은 매우 유용합니다.";
String wordPattern = "\\w+";
Matcher wordMatcher = Pattern.compile(wordPattern).matcher(sentence);
System.out.print("추출된 단어들: ");
while (wordMatcher.find()) {
System.out.print(wordMatcher.group() + " ");
}
System.out.println();
// 텍스트에서 날짜 추출 (예: 15/09/2023)
String textWithDate = "오늘 날짜는 15/09/2023입니다.";
String datePattern = "\\d{2}/\\d{2}/\\d{4}";
Matcher dateMatcher = Pattern.compile(datePattern).matcher(textWithDate);
while (dateMatcher.find()) {
System.out.println("찾은 날짜: " + dateMatcher.group());
}
// 전체 이름에서 이름과 성 분리
String fullName = "홍길동";
String namePattern = "(\\w{1,})\\s(\\w{1,})";
Matcher nameMatcher = Pattern.compile(namePattern).matcher("홍 길동");
if (nameMatcher.find()) {
System.out.println("이름: " + nameMatcher.group(1));
System.out.println("성: " + nameMatcher.group(2));
}
// 강력한 비밀번호 유효성 검사
String inputPassword = "P@ssword1";
String passwordPattern = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).{8,}$";
System.out.println("비밀번호 유효성 검사: " + inputPassword.matches(passwordPattern));
// 문자열에서 특정 패턴을 다른 패턴으로 교체 (예: 모든 공백을 언더스코어로 변경)
String textToReplace = "자바 정규 표현식을 사용하여 텍스트를 처리합니다.";
String replacePattern = "\\s";
String replacedText = textToReplace.replaceAll(replacePattern, "_");
System.out.println("교체된 텍스트: " + replacedText);
}
}
- 이메일 유효성 검사:
- inputEmail 변수에 이메일 주소를 저장합니다.
- emailPattern 정규식을 사용하여 이메일 형식을 검사합니다.
- matches 메소드를 통해 이메일이 유효한지 출력합니다.
- 전화번호 유효성 검사:
- inputPhone 변수에 전화번호를 저장합니다.
- phonePattern 정규식을 사용하여 다양한 전화번호 형식을 검사합니다.
- matches 메소드를 통해 전화번호가 유효한지 출력합니다.
- 문장에서 단어 추출:
- sentence 변수에 문장을 저장합니다.
- wordPattern 정규식을 사용하여 단어를 추출합니다.
- Matcher를 사용하여 문장에서 단어를 찾아 출력합니다.
- 텍스트에서 날짜 추출:
- textWithDate 변수에 텍스트를 저장합니다.
- datePattern 정규식을 사용하여 날짜 형식을 추출합니다.
- Matcher를 사용하여 텍스트에서 날짜를 찾아 출력합니다.
- 전체 이름에서 이름과 성 분리:
- fullName 변수에 전체 이름을 저장합니다.
- namePattern 정규식을 사용하여 이름과 성을 분리합니다.
- Matcher를 사용하여 이름과 성을 찾아 각각 출력합니다.
- 강력한 비밀번호 유효성 검사:
- inputPassword 변수에 비밀번호를 저장합니다.
- passwordPattern 정규식을 사용하여 비밀번호의 강도를 검사합니다.
- matches 메소드를 통해 비밀번호가 강력한지 출력합니다.
- 문자열에서 특정 패턴을 교체:
- textToReplace 변수에 텍스트를 저장합니다.
- replacePattern 정규식을 사용하여 공백 문자를 언더스코어로 교체합니다.
- replaceAll 메소드를 통해 교체된 텍스트를 출력합니다.
728x90
반응형
'개발 지식' 카테고리의 다른 글
python 정규식 예제 (0) | 2025.04.11 |
---|---|
javascript 정규식(RegEx) 패턴 예시 모음 (0) | 2025.04.09 |