[Algorithm🧬] 정규표현식

또상·2022년 5월 4일
0

Algorithm

목록 보기
48/133
post-thumbnail

신규 아이디 추천 문제를 풀면서 정규표현식을 알고 푸는 것과 모르고 푸는 것이 천차만별의 차이가 있다는 것을 느꼈다. 그래서 정규표현식에 대해 한번 정리해두고 앞으로 알고리즘 문제를 풀 때 사용하려고 한다!!!

. [] \d \s \w

. # 모든 문자
[.] # 진짜 .
[0-9] # 숫자 전체 \d 와 같음.
[^0-9] # 숫자가 아닌 것들 \D
[\t\n\r\f\v] # 공백 문자들 \s
[^\t\n\r\f\v] # \S
[a-zA-Z0-9_] # 알파벳, 숫자, _ 인 것들. \w
[^a-zA-Z0-9_] # \W

* + {} ?

ab*c # b가 0번부터 무한번까지 = ab{0,}c
ab+c # b가 1번부터 무한번까지 = ab{1,}c
ab{2,}c # b가 2번부터 무한
ab{3,5}c
ab?c = ab{0,1}c

^ $

^O O로 시작
O$ O로 끝
# \ 라는 문자를 쓰고 싶다면 \\ 두번 써야함.
# 리스트 안쪽 ^와 문자열 안쪽 ^은 의미가 다름

언어별 사용법
python

import re
re.match(정규식)
re.search(정규식)
re.findall(정규식) # 정규식과 맞는 모든 substring 리스트로 return
re.finditer(정규식) # 정규식과 맞는 모든 subs iteratable로 return 

swift

// NSRegularExpression을 이용하여 사용.
do {
    let regex = try NSRegularExpression(pattern: regex)
    let results = regex.matches(in: self, range: NSRange(self.startIndex..., in: self))
    return results.map {
        String(self[Range($0.range, in: self)!])
    }
} catch let error {
    print("invalid regex: \(error.localizedDescription)")
    return []
}

Python - https://wikidocs.net/4308
Swift -
https://developer.apple.com/documentation/foundation/nsregularexpression
https://eunjin3786.tistory.com/12
https://tngusmiso.tistory.com/62

profile
0년차 iOS 개발자입니다.

0개의 댓글