Notice
Recent Posts
Recent Comments
Link
투케이2K
24. (swift/xcode) 정규식 사용해 특수 문자 및 공백 제거 실시 - NSRegularExpression 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드 : ExtensionUtil]
import Foundation
extension String {
// [정규식 수행 실시 : 사용 방법 : let changeData = strData.matchString(_string: strData)]
func matchString (_string : String) -> String { // 문자열 변경 실시
let strArr = Array(_string) // 문자열 한글자씩 확인을 위해 배열에 담는다
let pattern = "^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]$" // 정규식 : 한글, 영어, 숫자만 허용 (공백, 특수문자 제거)
//let pattern = "^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9\\s]$" // 정규식 : 한글, 영어, 숫자, 공백만 허용 (특수문자 제거)
// 문자열 길이가 한개 이상인 경우만 패턴 검사 수행
var resultString = ""
if strArr.count > 0 {
if let regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive) {
var index = 0
while index < strArr.count { // string 문자 하나 마다 개별 정규식 체크
let checkString = regex.matches(in: String(strArr[index]), options: [], range: NSRange(location: 0, length: 1))
if checkString.count == 0 {
index += 1 // 정규식 패턴 외의 문자가 포함된 경우
}
else { // 정규식 포함 패턴의 문자
resultString += String(strArr[index]) // 리턴 문자열에 추가
index += 1
}
}
}
return resultString
}
else {
return _string // 원본 문자 다시 리턴
}
}
}
[소스 코드 : 뷰 컨트롤러]
// MARK: [테스트 메인 메소드]
func testMain() {
/*
[요약 설명]
1. 정규식 패턴 ^[a-z] : 영어 소문자 허용
2. 정규식 패턴 ^[A-Z] : 영어 대문자 허용
3. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 한글 허용
4. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 숫자 허용
5. 정규식 패턴 ^[ ] or ^[\\s] : 공백 허용
*/
// 초기 문자열 선언 실시
let strData = "hello%^@ 투케이2k ㅎㅎ!#$&TW*(O)K=+"
// 정규식 수행 실시
let changeData = strData.matchString(_string: strData)
// 결과 출력 실시
print("")
print("===============================")
print("[A_Main >> testMain() :: 메인 수행 실시]")
print("[원본 :: \(strData)]")
print("[정규식 수행 :: \(changeData)]")
print("===============================")
print("")
}
[결과 출력]
반응형
'Swift' 카테고리의 다른 글
Comments