잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록
현록의 기록저장소
정규표현식(Regular Expression) 본문
정규표현식은 문자열에서 해당 조건에 만족하는 부분을 찾아 활용할 수 있는 방법이다.
Problem Solving에서 많은 문자열 문제 풀이에 써먹었었다.
https://ydeer.tistory.com/tag/정규표현식
시간 날 때마다 틈틈이 유용한 문법을 정리할 생각으로 만든 포스트.
정규표현식을 생성하면 어떤 구조로 동작하는지 그림으로 보여준다.
기본적으로 JavaScript 스타일이라고 명시되어 있지만, 정규표현식은 형식을 거의 통일시키기 때문에 상관없이 활용 가능.
표현을 만들 때 눈으로 한 번 간단하게 검토 가능.
직접 문자열에 정규 표현식이 적용되는지, 어느 부분을 match시키고, match시키지 못하는지 눈으로 확인 가능.
표현식을 만들고 상세히 검토 가능.
https://ko.wikipedia.org/wiki/정규_표현식
https://en.wikipedia.org/wiki/Regular_expression
https://www.w3schools.com/jsref/jsref_obj_regexp.asp
.: 모든 종류의 문자 하나
[a-z]: 알파벳 소문자 중 하나
[A-Z]: 알파벳 대문자 중 하나 (==\u)
[가-힣]: 완성형 한글 중 하나
[ㄱ-ㅎ]: 한글 자음 중 하나
[ㅏ-ㅣ]: 한글 모음 중 하나
\d: 모든 숫자(0-9) 중 하나
\D: 숫자가 아닌 문자 (==[^0-9])
\s: 공백이나 탭 중 하나 (==[ \t])
\t: 탭
\n: 줄바꿈
\r: 캐리지리턴
[]: 중괄호 사이의 문자 중 하나
[^ ]: 중괄호 사이의 문자가 아닌 것 하나. [^ab]면 a나 b가 아닌 모든 문자 중 하나.
^: 문장의 처음
$: 문장의 끝
(): 그룹으로 묶기
{m,n}: m회 이상 n회 이하
{m,}: m회 이상
{0,}: 0회 이상
*: 0회 이상
+: 1회 이상
?: 0 또는 1회.(없거나 한번만)
|: 또는. A|B 이면 A나 B
앞에 (?i)를 달면 대소문자 무시
정규표현식이 (?i)abc이면, ABC, abc, Abc, aBc, abC, ABc, AbC, aBC 모두 찾아짐.
Java에서 정규표현식 활용
Matcher m = Pattern.compile(정규표현식).matcher(문자열);
String에서 ReplaceAll 등..
'Study > Algorithm' 카테고리의 다른 글
Hash Function (0) | 2019.06.27 |
---|---|
정렬 - 버블 정렬 (0) | 2019.06.27 |
한 선이 만나는 다른 선의 수 (0) | 2019.05.11 |
정렬 - 합병 정렬 (0) | 2019.04.28 |
정렬 - 퀵 정렬 (0) | 2019.04.27 |
잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록