[Swift] 정규표현식, 편리하게 쓰세요. (ft. name capture)

2023. 10. 28. 01:01· 🍎 Apple/Swift
목차
  1. 1. 정규표현식
  2. 2. name capture
  3. + prefixMatch?

1. 정규표현식

    func isOutOfRangePassword(passwordText: String) -> Bool {
        let rangeRegex = /^password:.{8,16}$/
        if passwordText.prefixMatch(of: rangeRegex) == nil { return true }
        return false
    }

정규표현식을 사용하여 받은 문자열의 패턴을 파악하는 것은 흔히 사용되는 방법이다.

 

그런데 패턴 뿐만 아닌, 원하는 패턴의 문자열을 정규표현식을 사용하여 추출하는 것도 가능하다.

바로 예제를 보자.

 

2. name capture

func isOutOfRangePassword(passwordText: String) -> Bool {
        let rangeRegex = /^password:(?<string>.{8,16})$/
        guard let result = passwordText.prefixMatch(of: rangeRegex) else { return true }
        
        print(result.string) //"password:"을 제외한 문자열이 찍힌다.
        result false
    }

이렇게 추출하고 싶은 패턴 부위에다 (?<원하는 변수명>)을 지정해주면, 원하는 패턴 부위를 편하게 추출할 수 있다.

 

+ prefixMatch?

여기서 사용된 PrefixMatch 에 대한 부가설명이다.

해당 문자열 안에 원하는 패턴이 들어있기만 하면 패턴을 인식할 수 있다.

 

그런데, 이를 원하지 않을 경우 정규 표현식 앞 뒤로 ^(처음)와 $(끝)을 붙이는 방법과 완벽히 일치하지 않으면 패턴을 찾아내지 못하는 wholeMatch를 사용하면 엄격한 검사가 가능하다.

'🍎 Apple > Swift' 카테고리의 다른 글

[SwiftLint/SwiftFormat] 깔끔한 코드를 만들어보자. (ft. 에러 해결)  (0) 2023.11.08
[swift] closure [weak self]를 남용하지 말자.  (1) 2023.10.27
dequeueReusableCell과 dequeueConfiguredReusableCell, 뭐가 다를까?  (0) 2023.10.26
[Swift] defer, 내부 코드를 매우 간단하게 만들고 싶을 때!  (0) 2023.10.24
[Swift] Opaque Type: Some을 붙여 타입캐스팅할 필요없이 구체 타입으로 사용하자.  (0) 2023.10.24
  1. 1. 정규표현식
  2. 2. name capture
  3. + prefixMatch?
'🍎 Apple/Swift' 카테고리의 다른 글
  • [SwiftLint/SwiftFormat] 깔끔한 코드를 만들어보자. (ft. 에러 해결)
  • [swift] closure [weak self]를 남용하지 말자.
  • dequeueReusableCell과 dequeueConfiguredReusableCell, 뭐가 다를까?
  • [Swift] defer, 내부 코드를 매우 간단하게 만들고 싶을 때!
PushedGun
PushedGun
App Developer
내 머리에 push 중..App Developer
PushedGun
내 머리에 push 중..
PushedGun
전체
오늘
어제
  • 분류 전체보기 (27)
    • 🍎 Apple (21)
      • Swift (9)
      • iOS (12)
    • 💻 CS (2)
      • Git (2)
    • 🤿 딥다이브 (1)
    • 🤔 후기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • name capture
  • dequeueReusableCell
  • No Swift version was specified
  • UIKit
  • convenience init
  • Encode
  • prefixMatch
  • decode
  • push -f
  • SWIFT
  • trailing closure
  • designated init
  • dequeueConfiguredReusableCell
  • IOS
  • swiftformat
  • 의존성 제거
  • Xcode
  • 네이버부스트캠프 멤버십
  • git
  • wholeMatch

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
PushedGun
[Swift] 정규표현식, 편리하게 쓰세요. (ft. name capture)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.