Swift/참조 URL

[Swift] 정규표현식에 대해

언클린 2020. 8. 6. 11:59
728x90

이번 글에서는 swift의 정규표현식의 자세한 설명이 적힌 블로그의 글을 읽고 소개해드리려고 합니다. 여러 가지 블로그에서도 다루고 있는 주제였지만 제가 학습하기 좋았던 블로그는 여기였던 것 같습니다. 간단히 사용법만 적힌 것이 아니고 그 의미까지 설명해주고 있어 정말 쉽게 이해할 수 있었습니다. 


1. 참조 URL

https://baked-corn.tistory.com/136

 

[Swift] Swift에서 정규표현식 사용하기

[Swift] Swift에서 정규표현식 사용하기 저는 지금까지 텍스트 필드 위에 입력되는 사용자의 입력이나 텍스트 덩어리에서 원하는 패턴의 값을 뽑아내거나 검증을 할 때 항상 모든 경우에 대해 if-els

baked-corn.tistory.com

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

이 옵션에 대해서는 문자들 간의 경계에 맞추어 추출된다고 합니다.

아래의 조건으로 문자들의 경계를 정한다고 하네요. 뭔가 굉장한 것 같습니다.

Technical Reports #29

 

UAX #29: Unicode Text Segmentation

Unicode® Standard Annex #29 Unicode Text Segmentation Summary This annex describes guidelines for determining default segmentation boundaries between certain significant text elements: grapheme clusters (“user-perceived characters”), words, and senten

unicode.org

3. 마무리

이번 글에서는 정규표현식에 관한 유용한 URL에 대하여 알아보았습니다. 이게 학습하면 학습할수록 점점 더 어려워지는 듯한 기분이 들었습니다... 간단히 유효한 메일 식이나 전화번호 등을 설정할 때 사용했는데 많이 어렵네요..

지적사항은 댓글에 남겨주시면 감사하겠습니다.


 

 

 

 

728x90