문자열의 정규식/정규표현식(Regular Expression)

썹스·2022년 12월 16일
0

Swift 문법

목록 보기
58/68

문자열의 정규식/정규표현식(Regular Expression)

특정한 규칙 또는 형식, 형태를 가지고 있는 문자열을 정규식/정규표현식(Regular Expression)이라고 부릅니다.

(정규식의 대표적인 예로는 아래와 같습니다.)

  • 전화번호 : "010-1234-5678"
  • 이메일 : "abcd@naver.com"
  • 우편번호 : "04524"

Swift에서의 정규표현식

✅ 전화번호의 정규표현식

"010-1234-5678" 형태의 정규식 표현은 아래와 같습니다.

var phoneNumberRegularExpression = #"[0-9]{3}\-[0-9]{4}\-[0-9]{4}"#

//    [0-9]{3}  ->  숫자 0~9를 사용한 3자리의 문자
//    \-        ->  숫자 사이의 문자 (010-1234)

"010-1234-5678", "010.1234.5678", "010 1234 5678", "01012345678" 와 같은 다양한 형태의 전화번호 표현식을 모두 수용하고 있는 정규표현식은 아래와 같습니다.

var phoneNumberRegularExpression =   #"[0-9]{3}[- .]?[0-9]{4}[- .]?[0-9]{4}"#
//    [0-9]{3}   ->  숫자 0~9를 사용한 3자리의 문자
//    [- .]      ->  숫자 사이의 문자 (010-1234, 010.1234, 010 1234)
//    ?          ->  숫자 사이에 문자가 없을 수 도 있음 (0101234)

✅ 이메일의 정규표현식

"abcd@naver.com" 형태의 정규식 표현은 아래와 같습니다.

var emailRegularExpression = #".*@.*\..*"#
//    .*         ->  문자의 종류, 문자열의 길이의 한계가 없는 모든 문자열
//    @          ->  "@" 문자를 포함  (XXX@XXX)
//    \.         ->  "." 문쟈럴 포함  (XXX.com)

✅ 우편번호의 정규표현식

"04524" 형태의 정규식 표현은 아래와 같습니다.

var postcodeRegularExpression =   #"[0-9]{5}"#

Swift에서의 정규표현식의 사용

Swift에서 정규표현식은 문자열의 .range(of: 정규표현식, options: .regularExpression) 메서드와 해당 옵션 프로퍼티(.regularExpression)를 같이 사용하는 경우가 많습니다.

✅ 정규표현식의 사용

var phoneNumber = "010-1234-5678"
var phoneNumberRegularExpression = #"[0-9]{3}[- .]?[0-9]{4}[- .]?[0-9]{4}"#

if let _ = phoneNumber.range(of: phoneNumberRegularExpression, options: .regularExpression){
    print("정규식에 포함되는 형식입니다.")
}
else{
    print("정확한 표현식이 아닙니다.")
}

/*출력 결과
정규식에 포함되는 형식입니다.
*/

var phoneNumber = "010@1234@5678"
var phoneNumberRegularExpression = #"[0-9]{3}[- .]?[0-9]{4}[- .]?[0-9]{4}"#

if let _ = phoneNumber.range(of: phoneNumberRegularExpression, options: .regularExpression){
    print("정규식에 포함되는 형식입니다.")
}
else{
    print("정확한 표현식이 아닙니다.")
}

/*출력 결과
정확한 표현식이 아닙니다.
*/
profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글