이번 글에서는 swift의 정규표현식의 자세한 설명이 적힌 블로그의 글을 읽고 소개해드리려고 합니다. 여러 가지 블로그에서도 다루고 있는 주제였지만 제가 학습하기 좋았던 블로그는 여기였던 것 같습니다. 간단히 사용법만 적힌 것이 아니고 그 의미까지 설명해주고 있어 정말 쉽게 이해할 수 있었습니다.
1. 참조 URL
https://baked-corn.tistory.com/136
2. 생각 정리
이번 글에서는 설명이 되어 있지 않은 NSRegularExpression의 Option에 대하여 좀 더 알아보겠습니다.
우선 Option으로는 아래와 같은 항목이 있습니다. 간단하게 어떤 조건으로 사용하면 좋을지 설명드리겠습니다.
- caseInsensitive
- allowCommentsAndWhitespace
- ignoreMetacharacters
- dotMatchesLineSeparators
- anchorsMatchLines
- useUnixLineSeparators
- useUnicodeWordBoundaries
(1) caseInsensitive
알파벳의 대소문자를 구분하지 않습니다.
문자열 = "man Man"
패턴 = "man"
조건 없을 시
man
caseInsensitive 조건 할당 시
man
Man
(2) allowCommentsAndWhitespace
패턴에서 공백과 #뒤의 문자를 무시합니다.
문자열 = "man"
패턴 = "man # in black"
조건 없을 시
추출 없음!
allowCommentsAndWhitespace 조건 할당 시
man
(3) ignoreMetacharacters
패턴에서 메타문자를 무효화합니다.
문자열 = "[man]"
패턴 = "[man]"
조건 없을 시
man
ignoreMetacharacters 조건 할당 시
[man]
이렇게 보면은 아마 조건이 없는 기본 디폴트에는 리터럴 문자열만 추출하는 것 같습니다.
(4) dotMatchesLineSeparators
[.] 개행 구문도 포함하여 추출합니다.
문자열 = """
man
in
black
"""
패턴 = ".+"
조건 없을 시
man
in
black
dotMatchesLineSeparators 조건 할당 시
man in black
음... 조건이 없을 시 개행에 맞추어 3번 추출되는 것을 조건 할당 후 한 번에 추출하는 기능인 것 같습니다.
(5) anchorsMatchLines
각 행의 문자열에서 줄의 시작[^]과 끝[$]에 맞추어 추출합니다
문자열 = """
man
in
black
"""
패턴 = "^.+$"
조건 없을 시
추출 없음!
anchorsMatchLines 조건 할당 시
man
in
black
(6) useUnixLineSeparators
Unix계 개행[\n]만 개행 코드로 인식 후 추출합니다.
문자열 = "man[\n]in[\r]black[\r][\n]2"
패턴 = ".+"
조건 없을 시
man
in
black
2
useUnixLineSeparators 조건 할당 시
man
in black
2
(7) useUnicodeWordBoundaries
이 옵션에 대해서는 문자들 간의 경계에 맞추어 추출된다고 합니다.
아래의 조건으로 문자들의 경계를 정한다고 하네요. 뭔가 굉장한 것 같습니다.
3. 마무리
이번 글에서는 정규표현식에 관한 유용한 URL에 대하여 알아보았습니다. 이게 학습하면 학습할수록 점점 더 어려워지는 듯한 기분이 들었습니다... 간단히 유효한 메일 식이나 전화번호 등을 설정할 때 사용했는데 많이 어렵네요..
지적사항은 댓글에 남겨주시면 감사하겠습니다.
'Swift > 참조 URL' 카테고리의 다른 글
[Swift] AutoLayout 어디가 문제인지 확인해보자! (0) | 2022.01.01 |
---|