最初のキャプチャグループでキャプチャされた内容を保持する置換逆参照である$1
と完全一致を置き換える必要があります。
さらに、後でパターンを展開することを決定した場合、文字クラスの組合の誤解を避けるため、[\d]
を\d
と書くことをお勧めします。また、最後に]
(.*
の欲張りのバリエーションを使用する場合)ではなく、最初に]
に戻るには、.*?
、遅延ドットマッチングを使用する方が安全です。しかし、それは実際の要件に依存します。
使用、次のいずれか:[?スウィフト3 - 私は正規表現でキャプチャグループを抽出するにはどうすればよい]の
let txt = "Lorem ipsum @[1484987415095898:274:Page Four] dolores"
let regex = NSRegularExpression(pattern: "@\\[\\d+:\\d+:(.*?)\\]", options:nil, error: nil)
let newString = regex!.stringByReplacingMatchesInString(txt, options: nil, range: NSMakeRange(0, count(txt)), withTemplate: "$1")
print(newString)
// => Lorem ipsum Page Four dolores
または
let txt = "Lorem ipsum @[1484987415095898:274:Page Four] dolores"
let newString = txt.replacingOccurrences(of: "@\\[\\d+:\\d+:(.*?)]", with: "$1", options: .regularExpression)
print(newString)
// => Lorem ipsum Page Four dolores
可能な複製(https://stackoverflow.com/questions/42789953/swift-3-how-do-i-extract-captured-group-in-regular-expressions) – the4kman
ここでグループを抽出するのではなく、それらを置き換える方法についてです。 –