NSRegularExpression : 정규식 사용하기 – Swift
Swift의 정규식
Swift는 언어 자체에서 정규식을 지원하지 않고 Foundation
의 NSRegularExpression
클래스를 이용한다.
NSRegulareExpression
의init
은throws
이기 때문에try
와 같이 사용되어야 한다.- 매치 결과는
TextCheckingResult
클래스의 인스턴스를 얻게 된다. 이는 매치영역 및 영역 내 각 매치 그룹의 범위를NSRange
값으로 가지고 있다. - 문제는 Swift 문자열의 부분문자열은
Index<String.Index>
에 의해서 얻을 수 있지,NSRange
를 이용할 수 없다. 따라서 이를 컨버팅하는 편의함수나 타입 확장을 이용해야 한다. (사실 이 부분은 Linux 버전의 Swift의 문제이다. Apple Swift에서는 Foundation/Cocoa를 임포트하게 되면 NSString의 API가 그대로 String으로도 노출되기 때문에 그대로 사용이 가능하다.)