μλ νμΈμ~
μ€λμ μ κ·μμ ν΅ν΄ λ¬Έμμ΄μ νλ¨νλ λ°©λ²μ λν΄μ μ 리νλ €κ³ ν©λλ€ : )
첫 λ²μ§Έ, λ¬Έμμ΄ μ μ²΄κ° νΉμ κ·μΉμ λΆν©νλμ§ νμΈνλ λ°©λ²
let myString: [String] = ["λλ", "λ°λ³΄λ€", "1597", "κ°λλ€123λΌλ§λ°4"]
let pattern: String = "^[0-9]*$" // μ«μ μ κ·μ
for string in myString {
guard let _ = string.range(of: pattern, options: .regularExpression) else {
print("\(string)μ μ«μλ‘λ§ μ΄λ£¨μ΄μ§μ§ μμμ΄μ..")
continue
}
print("\(string)μ μ«μλ‘λ§ μ΄λ£¨μ΄μ Έ μλ€μ!")
}
myStringμμ μ«μλ‘λ§ μ΄λ£¨μ΄μ§ λ¬Έμμ΄μ μ°ΎκΈ° μν΄ μ«μλ§ μ‘΄μ¬νλμ§ νμΈνκΈ° μν μ κ·μ "^[0-9]*$"λ₯Ό μ¬μ©ν΄ νμΈνλ λ°©λ²μ λλ€. μ κ·μμ μμκ³Ό λμ [^, $]μ μ¬μ©ν©λλ€.
λ λ²μ§Έ, λ¬Έμμ΄μ μΌλΆκ° νΉμ κ·μΉμ λΆν©νλμ§ νμΈ νλ λ°©λ²
1. ν΄λΉ κ·μΉμ λΆν©νλ 첫λ²μ§Έ λΆλΆμ μμμΌ νλ κ²½μ°
let myString: [String] = ["λλ", "λ°λ³΄λ€", "1597", "κ°λλ€123λΌλ§λ°4"]
let pattern: String = "[0-9]*"
for string in myString {
guard let range = string.range(of: pattern, options: .regularExpression) else {
print("\(string)μλ μ«μκ° μμ΄μ...")
continue
}
print("\(string)μ μ«μλ‘ μ΄λ£¨μ΄μ§ λΆλΆμ \(string[range]) μ
λλΉ")
}
μλ₯Ό λ€μ΄μ myStringμ λ§μ§λ§ μμμΈ "κ°λλ€123λΌλ§λ°4"μμλ 4κ° μλ 123μ΄ μ«μλ‘ μ΄λ£¨μ΄μ§ λΆλΆμ΄λΌκ³ μΆλ ₯λκ² λ©λλ€.
2. ν΄λΉ κ·μΉμ λΆν©νλ λͺ¨λ λΆλΆμ μμμΌ νλ κ²½μ°
do {
let regex = try NSRegularExpression(pattern: pattern, options: [])
let result = regex.matches(in: string, options: [], range: NSRange(location: 0, length: string.count))
let matchedStrings = result.map { (element) -> String in
let range = Range(element.range, in: string)!
return String(string[range])
}
return matchedStrings
} catch let error {
print(error.localizedDescription)
}
NSRegularExpressionμ μ΄μ©νλ €λ©΄ do try catch νΉμ try?λ₯Ό μ΄μ©ν΄μΌ νλ©°
mapμ μ΄μ©ν΄ μΌμΉνλ λͺ¨λ λ¬Έμμ΄μ λ°νν μ μμ΅λλ€.
μ κ·μ
μ€μ λ‘ λ§μ΄ μ°μ΄κ³ μλ μ κ·μ λͺ κ°μ§λ§ μ μ΄λ³΄κ² μ΅λλ€.
μ«μ, μμ΄ μλλ¬Έμ, νκΈ, κ·Έλ¦¬κ³ κ°μ’ νΉμλ¬Έμλ§ μλμ§ νλ³νκΈ° μν μ κ·μ
^[0-9a-zA-Zκ°-ν£γ±-γ
γ
-γ
£`~!@#$%^&*()\\-_=+\\[{\\]}\\\\|;:'\",<.>/?\\s]$
μμ μ κ·μμ κΈ°μ€μΌλ‘
μ«μλ§
^[0-9]*$
μμ΄ λμλ¬Έμλ§
^[a-zA-Z]*$
μμ΄ λ° μ«μλ§
^[0-9a-zA-Z]*$