정규표현식을 공부하고 푼 문제이다. https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 다트 게임을 총 3번 진행하는데 각 게임의 점수를 계산하려고 정규표현식을 사용했다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 시 해당 점수와 바로 전에 얻은 점수를 각 2배로 만든다. 아차상(..
정규표현식을 공부하고나서 푼 문제이다. https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가..
예제 코드는 모두 Java 언어를 사용한다. 전방탐색 전방탐색(lookahead) 패턴은 일치 영역을 발견해도 그 값을 반환하지 않는 패턴을 말한다. 전방탐색은 실제로는 하위 표현식이며, 하위 표현식과 같은 형식으로 작성한다. 전방탐색 패턴의 구문은 ?=로 시작하고 등호(=) 다음에 일치할 텍스트가 오는 하위 표현식이다. 일부 정규 표현식 문서에서는 일치하는 영역을 반환하는 동작을 표현할 때 consume이라는 용어를 쓴다. 이럴 경우 전방탐색은 not consume이라고 말한다. 프로토콜은 콜론(:)을 기준으로 호스트 이름과 분리되어 있다. 프로토콜을 찾는 정규표현식을 만들어보자. public class code { public static void main(String[] args) { String ..
예제 코드는 모두 Java 언어를 사용한다. 한 문장이 있고, 이 문장 안에 반복해 나오는 문자, 바로 실수로 같은 단어를 두 번 입력한 오자를 모두 찾고 싶다고 가정해보자. 두 단어가 일치하는지 알려면 먼저 나온 단어가 무엇인지 반드시 알고 있어야 한다. 역참조는 정규 표현식 패턴으로, 앞서 일치한 부분을 다시 가리킨다. (먼저 일치한 단어를 만한다.) 다음 예제에는 반복해 나오는 단어가 세 가지 있고, 이 세 단어를 모두 찾아야 한다. public class code { public static void main(String[] args) { String regex = "[ ]+(\\\\w+)[ ]+\\\\1"; Pattern pattern = Pattern.compile(regex); String[..
예제 코드는 모두 Java 언어를 사용한다. 텍스트 영역 내에 특정 위치에서 텍스트를 찾아야 할 때도 있다. 그러려면 위치 찾기가 필요하며, 이번에 배워볼 것이다. 경계 지정하기 위치 찾기는 텍스트 문자열 안에서 반드시 일치해야 하는 위치를 지정할 때 사용한다. 경계를 사용하거나 패턴 앞이나 뒤에 특정한 위치 혹은 경계를 나타내는 메타 문자를 사용하면 된다. 단어 경계 지정하기 가장 흔하게 쓰는 방법 중 하나로, \b로 표시하는 단어 경계이다. 단어 경계라는 이름에서 유추해 볼 수 있듯이, \b는 단어의 시작이나 마지막을 일치시킬 때 사용한다. public class code { public static void main(String[] args) { String regex = "\\\\ba[0-9]{2..
예제 코드는 모두 Java 언어를 사용한다. 앞서 정규 표현식 패턴은 문자 하나만 찾는 패턴만 살펴보았다. 이제 문자를 여러 개 찾는 방법을 살펴볼 예정이다. 하나 이상의 문자 찾기 문자나 집합에 속한 요소를 하나 이상 찾으려면 간단히 문자 뒤에 더하기(+) 문자를 붙이면 된다. 더하기(+)는 문자가 하나 이상일 때 일치한다. public class code { public static void main(String[] args) { String regex = "a[0-9]+"; Pattern pattern = Pattern.compile(regex); String[] strs = { "a", "a1", "a12", "1a" }; for(String str : strs) { Matcher matcher ..
예제 코드는 모두 Java 언어를 사용한다. 이스케이프 살펴보기 이스케이프(escape)에 대해 이해해야 메타 문자를 더욱 이해할 수 있게 된다. 메타 문자들은 정규 표현식에서 특별한 의미를 가지므로 자기 자신을 문자 그대로 표현할 수 없다. Java 언어에서는 Pattern.compile에서는 컴파일 에러가 발생한다. public class code { public static void main(String[] args) { String regex = "[e"; Pattern pattern = Pattern.compile(regex); String[] strs = { "[eric]", "[]eric" }; for(String str : strs) { Matcher matcher = pattern.mat..
예제 코드는 모두 Java 언어를 사용한다. 문자 그대로 찾기 문자 그대로 찾으려면 찾고 싶은 문자열 그대로 쓰면 된다. regex : 찾고 싶은 문자열 str : 해당 문자열 public class code { public static void main(String[] args) { String regex = "Eric"; String str = "Hello, my name is Eric. Please visit " + "my github at "; if(str.contains(regex)) { System.out.println("str 안에 " + regex + " 문자열이 존재한다."); } else { System.out.println("str 안에 " + regex + " 문자열이 존재하지 않는..
- Total
- Today
- Yesterday
- Spring Boot
- Spring
- Olympiad
- MSA
- 디자인 패턴
- JPA
- node.js
- programmers
- BAEKJOON
- Kotlin
- kkoon9
- 코테
- Java
- 프로그래머스
- Effective Java
- 객체지향
- BOJ
- 클린 코드
- 이팩티브 자바
- 백준
- 이펙티브 자바
- Algorithm
- 디자인패턴
- C++
- 정규표현식
- kotest
- AWS
- 테라폼
- 클린 아키텍처
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |