import Foundation
let pattern = #"(\d)(?=.*:.*~.*~.*?\1_(.{4}).*?(,))"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = ##"#162:~;0101_1000;0110_1001;0111_1010;1000_1011;1001_1100;1010_1101;1011_1110;1100_1111,~0_00001_00012_00103_00114_01005_01016_01107_01118_10009_1001,"##
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"$3$2"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression