iOS (스파르타)

정규 표현식, 정규식 표현들

가애야 2024. 8. 30. 10:14

이메일 조건을 걸어서 했었는데

팀원분이 보시고 정규식이 있을거라해서 찾아봤당!

 

문법

표현 정규식 의미
^ 시작 앵커
(?=.*[A-Z].*[A-Z]) 문자열에서 대문자가 2개 있는지
(?=.*[!@#$%^]) 문자열에서 선언한 특수 문자가 존재하는지
(?=.*[0-9].*[0-9]) 문자열에서 숫자가 2개 포함되어 있는지
(?=.*[a-z].*[a-z].*[a-z]) 문자열에서 소문자가 3개 이상 포함되어 있는지
.{10} 문자열의 길이가 10인지
& 끝 앵커

 

 

이메일 정규식 표현

let regex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
  • @앞에는 대문자, 숫자, 소문자, 특수문자(._%+-)가 포함 가능
  • \\. 콤마를 표현하기 위해서 \\사용
  • @뒤로는 대문자, 소문자, 숫자 그리고 . 기준으로 맨 마지막 문자가 2~64길이

핸드폰 번호 정규식 표현

let regex = "^01[0-1, 7][0-9]{7,8}$"
  • 는 시작 앵커, $ 는 끝 앵커
  • 핸드폰 번호는 01로 시작
  • 01다음에는 0,1,7 가능
  • 그다음에 오는 숫자는 0~9 가능하고 7자리에서 8자리만 가능

패스워드 정규식 표현

let regex = "^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+=-]).{8,50}" // 8자리 ~ 50자리 영어+숫자+특수문자
  • ^ 첫 앵커, $ 끝 앵커
  • (?=.* 로 시작: 조건문
  • (?=.*...)(?=.*...)이와 같이 묶인것은 And조건이 아닌 Or조건
  • (?=.*[A-Za-z]) 대문자나 소문자 가능
  • (?=.*[0-9]) 숫자 가능

 

 

 

알려준 팀원님 감사하고,

내용 가져온 블로그 종권님 감사해요

https://ios-development.tistory.com/591