import Foundation
let pattern = #"\s*\([^()]+\)$"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Data/3d/Maps/28_rock_rc/SpeedTree/palms/images/palm_trunk.dx11.dds.dvpl (80.79 KiB)
Data/3d/Maps/28_rock_rc/stones/images/karelia_tiletex_blue.dx11.dds.dvpl (595.11 KiB)
Data/3d/Maps/28_rock_rc/stones/images/karelia_tiletex_blue.tex.dvpl (42 B)
Data/3d/Maps/29_skit_sk/work
Data/3d/Maps/29_skit_sk/work/images
Data/3d/Maps/29_skit_sk/work/images/yamato_01.dx11.dds.dvpl (153.60 KiB)
Data/3d/Maps/29_skit_sk/work/images/yamato_01.tex.dvpl (42 B)
Data/3d/Maps/29_skit_sk/work/images/yamato_02.dx11.dds.dvpl (145.80 KiB)
Data/3d/Maps/29_skit_sk/work/images/yamato_02.tex.dvpl (42 B)
Data/3d/Maps/34_forgecity_fc/buildings/images/bld_metlife.dx11.dds.dvpl (507.31 KiB)
Data/3d/Maps/34_forgecity_fc/buildings/images/bld_tower_plant.dx11.dds.dvpl (164.39 KiB)
Data/3d/Maps/34_forgecity_fc/buildings/images/build_1.dx11.dds.html (586.68 KiB)
Data/3d/Maps/34_forgecity_fc/buildings/images/build_2.dx11.dds.txt (145.84 KiB)
Data/3d/Maps/34_forgecity_fc/buildings/images/build_3.dx11.dds.gif (152.02 KiB)
Data/3d/Maps/34_forgecity_fc/buildings/images/build_4.dx11.dds.dvpl (148.57 KiB)
Data/3d/Maps/34_forgecity_fc/buildings/images/chrysler_building.dx11.dds.dvpl (515.44 KiB)
Data/3d/Maps/34_forgecity_fc/landscape/grass/forgecity_GrassMap.dx11.dds.dvpl (184.37 KiB)
Data/3d/Maps/hangar_prem_2018_birthday_6
Data/3d/Maps/hangar_prem_2018_birthday_6/birthday_5
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #""#
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