[RegExr] lookarond 공부 - live-small/problem-solving- GitHub Wiki
정규표현식, lookaround
-
공부하게 된 이유
프로그래머스 파일명정렬 문제를 풀던 중, 뒤에 숫자가 나오기 전의 값을 패턴으로 표현할 수 없을까..하고 검색 중에 발견. -
what is this ?
정의한 패턴에 전방, 후방에도 조건을 붙여 세밀하게 정규표현식을 이용할 수 있다. -
종류
-
lookahead
- positive
X (?=Y)
- negative
X (?!Y)
- positive
-
lookbehind
- positive
(?<=Y) X
- negative
(?<!Y) X
- positive
-
-
설명
X (?=Y)
경우, 뒤에 Y가 있다면 X를 매칭 결과로 반환한다.
X (?!Y)
경우, 뒤에 Y가 없다면 X를 매칭 결과로 반환한다.
EX) /w.*(?=github)/라면, 뒤에 github이 있는 앞의 값이 반환된다
-
특징
lookaround 패턴(Y)
은 매칭 결과에 포함되지 않음.
positive는 일치하는 값을, negative는 일치하지 않는 값을 찾음. -
활용
파일명정렬["img12.png", "img10.png", "img02.png", "img1.png", "IMG01.GIF", "img2.JPG"]
여기서 숫자 앞의 값만 결과값으로 받으려면 어떻게 패턴을 짜야할까?
- lookahead positive
/^[a-zA-Z-\s]+(?=\d)/gi
- lookahead negative
/^((?!\d).)+/gi
- lookahead positive
-
참고
전체소스코드
연습할 곳
https://regexr.com/
참고한 자료
https://1004lucifer.blogspot.com/2019/06/regex.html
https://elvanov.com/2388
읽어볼 자료
http://www.regular-expressions.info/lookaround.html
vs code에서 정규표현식 이용 https://elvanov.com/2384