안녕하세요! 프뚜입니다.
개발을 하면서 정규표현은 어렵기 때문에 많은 관심을 갖지 않았던 것 같습니다.. 하지만, 정규표현식을 잘 써야 멋진 개발자가 될 수 있다고 생각합니다.
[개발 환경]
- 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
'프로그램 > JAVA' 카테고리의 다른 글
[Filter] Spring Filter XSS 공격 방어하기 (ResponseFilter) (1) | 2023.01.06 |
---|---|
[Regex] JAVA replace 정규 문자 변경하기 (2) | 2023.01.05 |
[AOP] SpringBoot AOP 사용하기 (2) | 2022.12.30 |
[JWT] Spring Interceptor 세팅 및 사용하기 (2) | 2022.12.28 |
[JAVA] SpringBoot에서 JWT 설정 및 사용하기 (JJWT) (2) | 2022.12.27 |
안녕하세요! 프뚜입니다.
개발을 하면서 정규표현은 어렵기 때문에 많은 관심을 갖지 않았던 것 같습니다.. 하지만, 정규표현식을 잘 써야 멋진 개발자가 될 수 있다고 생각합니다.
[개발 환경]
- 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
'프로그램 > JAVA' 카테고리의 다른 글
[Filter] Spring Filter XSS 공격 방어하기 (ResponseFilter) (1) | 2023.01.06 |
---|---|
[Regex] JAVA replace 정규 문자 변경하기 (2) | 2023.01.05 |
[AOP] SpringBoot AOP 사용하기 (2) | 2022.12.30 |
[JWT] Spring Interceptor 세팅 및 사용하기 (2) | 2022.12.28 |
[JAVA] SpringBoot에서 JWT 설정 및 사용하기 (JJWT) (2) | 2022.12.27 |