πŸ˜΅β€πŸ’« 이게 뭔데? 외계어 μ•„λ‹ˆμ•Ό??

μ„ λ―Όμž¬Β·2023λ…„ 3μ›” 31일
0
post-thumbnail

πŸ₯ Swift의 μ •κ·œμ‹

Swiftμ—μ„œ \ (μ—­ μŠ¬λž˜μ‰¬)λŠ” μ—°μ‚°μž 역할을 ν•˜λ―€λ‘œ,
\λ₯Ό 문자 자체둜 μ‚¬μš©ν•˜κ³  싢을 땐! \\ μ΄λ ‡κ²Œ 두 개둜 μ‚¬μš©ν•΄μ•Όν•œλ‹€!

πŸ₯― λ¬Έμžμ—΄ 일뢀가 μΌμΉ˜ν•˜λŠ” 지 ν™•μΈν•˜λŠ” 방법! (첫 번째둜 μΌμΉ˜ν•˜λŠ” 지)

let regex = "[0-9]"

let check = "abcdefg".range(of: regex, options: .regularExpression) != nil
// 좜λ ₯ κ°’ : false

μ΄λ ‡κ²Œ 문자 일뢀가 μΌμΉ˜ν•˜λŠ” 지 확인할 수 μžˆλ‹€.
문자 λ²”μœ„λŠ”[] (λŒ€ κ΄„ν˜Έ)λ₯Ό μ‚¬μš©ν•œλ‹€.

πŸ₯ž λ¬Έμžμ—΄ 전체가 μΌμΉ˜ν•˜λŠ” 지 ν™•μΈν•˜λŠ” 법!

let regex = "^[0-9]&"

let test1 = "123".range(of: regex, options: .regularExpression) != nil
let test2 = "a12".range(of: regex, options: .regularExpression) != nil
let test3 = "abc".range(of: regex, options: .regularExpression) != nil
let test4 = "!@123".range(of: regex, options: .regularExpression) != nil
// true false false false

λ¬Έμžμ—΄ μ „λΆ€ μΌμΉ˜λŠ” 액컀λ₯Ό μ‚¬μš©ν•œλ‹€.
μ‹œμž‘ 액컀 : ^
끝 액컀 : &
λͺ¨λ“  λ¬Έμžμ—΄μ€ * λ₯Ό μ‚¬μš©ν•œλ‹€.

🍞 λ¬Έμžμ—΄ λ²”μœ„ λŒ€κ΄„ν˜Έμ— μ—¬λŸ¬ λ²”μœ„ λ„£κΈ°!

  • ν•œκΈ€ 자음 : γ„±-γ…Ž
  • ν•œκΈ€ λͺ¨μŒ : ㅏ-γ…£
  • μ˜μ–΄ μ†Œλ¬Έμž : a-z
  • μ˜μ–΄ λŒ€λ¬Έμž : A-Z
  • 숫자 : 0-9
let regex = "[κ°€-νž£γ„±-γ…Žγ…-γ…£a-zA-Z0-9]"

let test1 = "1".range(of: regex, options: .regularExpression) != nil
let test2 = "κ°€".range(of: regex, options: .regularExpression) != nil
let test3 = "abc".range(of: regex, options: .regularExpression) != nil
let test4 = "!".range(of: regex, options: .regularExpression) != nil
// true true true false

🧁 아이디 μž…λ ₯ λ¬Έμžμ—΄!

let regex = "^.*([κ°€-νž£γ„±-γ…Žγ…-γ…£a-zA-Z0-9])+.*$"

let test1 = "1".range(of: regex, options: .regularExpression) != nil
let test2 = "κ°€".range(of: regex, options: .regularExpression) != nil
let test3 = "!".range(of: regex, options: .regularExpression) != nil
let test4 = "!abc".range(of: regex, options: .regularExpression) != nil
// true true false true

.* ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•˜λ©΄ μ•žλ’€μ— μ–΄λ–€ λ¬Έμžκ°€ 와도 상관 μ—†κ³ , 무쑰건 μ€‘κ°„μ˜ λ¬Έμžμ—΄λ§Œ 포함
.* κ³Ό .* 사이에 [(μ •κ·œμ‹)]+ 을 λ„£μ–΄μ„œ κ΅¬ν˜„

🍩 ν•Έλ“œν° 번호 μž…λ ₯ μ •κ·œμ‹

let regex = "^01[0-1,7][0-9]{7,8}&"

let test1 = "01012345678".range(of: regex, options: .regularExpression) != nil
let test2 = "0112345678".range(of: regex, options: .regularExpression) != nil
let test3 = "01312345678".range(of: regex, options: .regularExpression) != nil
let test4 = "1234".range(of: regex, options: .regularExpression) != nil
// true true false false

[] λ¬Έμžμ—΄ μ•ˆμ— μ—¬λŸ¬κ°œμ˜ or 쑰건을 쀄 수 μžˆλ‹€. [0-1,7] : 0λΆ€ν„° 1μ΄λ‚˜ 7κ°’
{} μ€‘κ΄„ν˜Έ μ•ˆμ— μ•žμ˜ λ¬Έμžμ—΄ 갯수의 λ²”μœ„ μ„€μ • κ°€λŠ₯! {7,8} : 7~8자리
κΈ°ν˜Έλ‘œλ„ μ€„μ—¬μ„œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.
* = {0,} 0이상
+ = {1,} 1이상
? = {0,1} 0이상 1μ΄ν•˜

πŸ₯  이메일 μž…λ ₯ μ •κ·œμ‹

let regex = "^([a-zA-Z0-9])+@[a-zA-Z]+//.[a-z]{3,20}&"

let test1 = "adsw.com".range(of: regex, options: .regularExpression) != nil
let test2 = "maks@naver.com".range(of: regex, options: .regularExpression) != nil
let test3 = "maskdkk@Nav#@er.com".range(of: regex, options: .regularExpression) != nil
let test4 = "maksdk@naver.123".range(of: regex, options: .regularExpression) != nil
//false true false false

{} μ€‘κ΄„ν˜Έ μ•ˆμ— λ„μ–΄μ“°κΈ°ν•˜λ©΄ μ•ˆλ¨.
λŒ€κ΄„ν˜Έ 사이에 λ¬Έμžκ°€ λ“€μ–΄κ°€λ©΄ +둜 μ—°κ²°ν•΄μ•Όν•œλ‹€.
+둜 μ—°κ²°λ˜λ©΄ λ…λ¦½μ μœΌλ‘œ μΈμ‹λ˜μ–΄ λ§ˆμ§€λ§‰ μ„ μ–Έν•œ {3,20}이 + 이후에 적용됨

πŸ™ 마무리!

μ˜€λŠ˜μ€ μ΄λ ‡κ²Œ 외계어같은 μ •κ·œμ‹μ„ μ•Œμ•„λ³΄μ•˜λ‹€!
μ²˜μŒμ—λŠ” μ–΄λ €μ› μ§€λ§Œ 곡뢀λ₯Ό ν•˜κ³  λ³΄λ‹€λ³΄λ‹ˆ 많이 이해가 λ˜λŠ” κ±° κ°™λ‹€!
λ‹€μŒμ—λŠ” RegexBuilderλ₯Ό 곡뢀해보렀고 ν•œλ‹€!
μ°Έκ³ ν•œ μ‚¬μ΄νŠΈ

profile
μ—΄μ‹¬νžˆ ν•˜μž

0개의 λŒ“κΈ€