Swift 正規表現、文字列抽出(抜き出し)

文字列「aaa releaseDate: \"2021/6/25\" zzz」から「2021/6/25」を抽出

コード

import Foundation

let check = "aaa releaseDate: \"2021/6/25\" zzz"
do {
    let regex = try NSRegularExpression(pattern: "(releaseDate:) \"(.*)\" .*")
    let matches = regex.matches(in: check, range: NSRange(location: 0, length: check.count))
    print(matches.count)
    print(matches[0].range(at: 1))
    print(matches[0].range(at: 2))
    let checkNS = NSString(string: check)
    print(checkNS.substring(with: matches[0].range(at: 2)))
}
catch {
    
}
  • 抽出したい箇所をグループ指定
    上記は2ヵ所指定
  • マッチ後、グループはNSRangeで取得
    print例{4, 12} 開始位置, 文字数
  • NSStringのsubstring()でNSRangeを使用して抽出
  • ダブルコーテーションのエスケープは「\"」

SwiftSwift

Posted by shi-n