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. 정규표현식
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 |