프로그램/JAVA
[Regex] JAVA 정규식표현 사용하기
프뚜
2023. 1. 4. 10:00
728x90
반응형
SMALL
안녕하세요! 프뚜입니다.
개발을 하면서 정규표현은 어렵기 때문에 많은 관심을 갖지 않았던 것 같습니다.. 하지만, 정규표현식을 잘 써야 멋진 개발자가 될 수 있다고 생각합니다.
[개발 환경]
- OS: Windows 10 64bit
- JAVA: 1.8
# Pattern Class 생성하기
Pattern pattern = Pattern.compile("정규식표현");
다양한 메서드를 지원하고 있지만, compile 메서드를 가장 많이 사용하기 때문에 compile을 사용하겠습니다.
# Matcher Class 생성하기
Matcher matcher = pattern.matcher("정규식표현에 체크 될 데이터");
다양한 메서드를 지원하고 있기 때문에 상황에 맞춰서 사용하면 됩니다. 저는 가장 많이 사용하는 matches()를 사용하겠습니다.
# 정규표현식 문법
# 자주 사용하는 정규표현식
# 다양한 테스트 하기
// 2022.12.23[프뚜]: 숫자 허용 패턴
String patternValue = "^[0-9]*$";
Pattern pattern = Pattern.compile(patternValue);
String value1 = "a13c69d";
String value2 = "013679";
// 2022.12.23[프뚜]: 패턴에 적합한지 확인
Matcher matcher = pattern.matcher(value1);
System.out.println(matcher.matches());
matcher = pattern.matcher(value2);
System.out.println(matcher.matches());
// 2022.12.23[프뚜]: String Class 제공하는 matches
value1.matches(patternValue);
value2.matches(patternValue);
# Path Filter 구현하기
// 2022.12.23[프뚜]: 아스테리크(*) 1개
String asterisk = "([^/]+)";
// 2022.12.23[프뚜]: 아스테리크(*) 2개
String doubleAsterisk = "(.+)";
String pattern = "/users/*/man/**/name"
.replaceAll("[*][*]", doubleAsterisk)
.replaceAll("[*]", asterisk);
String path = "/users/?/man/?/.../name";
boolean result = Pattern.matches(pattern, path);
자세한 내용은 소스코드를 통해 확인해보실 수 있습니다. (제목과 Git Comment는 같습니다.)
https://github.com/JeongSeongSoo/spring-tistory
GitHub - JeongSeongSoo/spring-tistory
Contribute to JeongSeongSoo/spring-tistory development by creating an account on GitHub.
github.com
https://regex101.com/r/jN2fU8/1
regex101: build, test, and debug regex
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET.
regex101.com
728x90
반응형
LIST