[Swift] 문자열 [3]

임승섭·2023년 7월 14일
0

Swift

목록 보기
34/35

정규식

  • "특정한 규칙"을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언
  • 올바른 전화번호인지, 올바른 이메일 형식인지 확인
/**=========================================================**/
  #"[0-9]{3}[- .]?[0-9]{4}[- .]?[0-9]{4}"#   // 전화번호 러프하게
  #".*@.*\..*"#                              // 이메일 러프하게
  #"[0-9]{3}\-[0-9]{3}"#                     // 우편번호 러프하게
/**=========================================================**/

let number = "010-1234-12345"
var telephoneNumRegex = #"[0-9]{3}\-[0-9]{4}\-[0-9]{4}"#
if let _ = number.range(of: telephoneNumRegex, options: [.regularExpression]) {
	print("유효한 전화번호")
}

특정 문자의 제거

  • 간단하게 앞뒤 특정 문자를 제거하는 메서드 : string.trimmingCharacters(in: CharacterSet)
  • 문자열 중간에 특정 문자 제거하는 방법 : 해당 특정 문자 기준으로 잘라서 문자열 -> 배열 -> 문자열
    string.components(seperatedBy: CharacterSet).joined()
// 1) 앞뒤의 공백문자 제거
var userEmail = " my-email@example.com "
var trimmedString = userEmail.trimmingCharacters(in: [" "])
print(trimmedString)


// 2) 앞뒤의 특정문자의 제거
var someString = "?Swift!"
var removedString = someString.trimmingCharacters(in: ["?","!"])
print(removedString)

someString = "?Swi!ft!"
removedString = someString.trimmingCharacters(in: ["?","!"])
print(removedString)       // 중간에 있는 !는 제거하지 못함


// 3) (중간에 포함된)공백문자의 제거
var name = " S t e v e "
var removedName = name.components(separatedBy: " ").joined()    //["", "S", "t", "e", "v", "e", ""]
print(removedName)


// 4) (중간에 포함된)특수문자의 제거
var phoneNum = "010-1234-1234"
var newPhoneNum = phoneNum.components(separatedBy: "-").joined()   // ["010", "1234", "1234"]
print(newPhoneNum)


// 5) 여러개의 특수문자를 한꺼번에 제거
var numString =  "1+2-3*4/5"
var removedNumString =  numString.components(separatedBy: ["+","-","*","/"]).joined()
print(removedNumString)


// 6) components(separatedBy:)와 거의 동일한 메서드 split(separator:) 그러나 차이는 있음
var str =  "Hello Swift"
var arr = str.split(separator: " ")    // 서브스트링으로 리턴함
print(arr)
print(arr.joined())

// - (1) split은 Substring 배열로 리턴
str.split(separator: " ")

// - (2) split은 클로저를 파라미터로 받기도 함 (클로저에서 원하는 함수내용을 정의하면 되므로 활용도가 더 높을 수 있음)
str.split { $0 == " " }

0개의 댓글