import Foundation
// WARNING: You included a flag that Swift doesn't support: u
// When this flag is set, it makes the pattern and subject strings to be treated as unicode.
// Swift already treats the pattern and subject strings as unicode by default, so including this flag is redundant.
let pattern = #"([0-9]{1,2}:[0-9]{2}) (AM|PM)(\n)(.*)\n"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
5:47 PM
[EASY] Panzer Pebble joined the server
5:47 PM
Trigger executed raw command message "76561199679367168" Welcome to EASY Company | Level 50+! If you have any issues, please report it by typing !admin (reason) in chat. Come check us out at discord.gg/easycompany. You MUST be level 50 or higher to play on this server and level 75 or higher to play commander.
5:47 PM
Player [EASY] Panzer Pebble switched from None to Allies
5:47 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [We are trying to populate the server which means special rules apply.
5:56 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [Vote for the nextmap:
5:59 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [We are trying to populate the server which means special rules apply.
5:59 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [This server is under level thresholds control.
6:18 PM
Player [EASY] Panzer Pebble switched from None to Axis
7:28 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [Vote for the nextmap:
7:48 PM
MASTER CHIEF (Axis) killed [EASY] Panzer Pebble (Allies) with GEWEHR 43
7:49 PM
Yustitsiya (Axis) killed [EASY] Panzer Pebble (Allies) with MP40
9:00 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [Vote for the nextmap:
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"\g<1>\g<2> \g<4>\n"#
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