驗證字串是否匹配正則運算式的優雅方法是什么?我使用下一個正則運算式來獲取性別,例如:
F = 女性
M = 男性
let idPassport = "G394968225MEX25012974M2807133<<<<<<06"
let regexGender = "[F|M]{1}[0-9]{7}"
let genderPassport = id passport.matchingStrings(regex: regexGender)
if genderPassport != nil{
print(genderPassport) // my output ["M2"]
}
我用這個函式來匹配字串:https : //stackoverflow.com/a/40040472/15324640
extension String {
func matchingStrings(regex: String) -> [[String]] {
guard let regex = try? NSRegularExpression(pattern: regex, options: []) else { return [] }
let nsString = self as NSString
let results = regex.matches(in: self, options: [], range: NSMakeRange(0, nsString.length))
return results.map { result in
(0..<result.numberOfRanges).map {
result.range(at: $0).location != NSNotFound
? nsString.substring(with: result.range(at: $0))
: ""
}
}
}
}
我只想要得到男性的來信:M 或 F
uj5u.com熱心網友回復:
獲取M信件使用
import Foundation
let idPassport = "G394968225MEX25012974M2807133<<<<<<06"
let regexGender = "[FM](?=[0-9]{7})"
var genderPassport=""
if let rng = idPassport.range(of: regexGender, options: .regularExpression) {
genderPassport=String(idPassport[rng])
}
print(genderPassport)
// => M
在這里,[FM](?=[0-9]{7})匹配F或M后跟任何七位數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/355942.html
上一篇:多個拆分條件
