import Foundation
let pattern = #"\b(\w+)\b(?=.*\b\1)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"GEIGERPK,GIORDAAS,KOUBAPL,PASICAN,PERRENDN,guest_confluence,BIOLLUFE,BUETTNMC,BURKHAMS,DELUCALA,FAEML,GACHNAAS,GAEHWITI,GUINNAHE,JELINETS,KURZENRF,LANFRAMN,MEIERMO,MIESCHAS,PAULUA,ROHREREH,SCHMIDAS,SHAFIKTK,STURZETS,TANASKSA,THALMABE,ZUANMA,freyms,ramseych,FEUCHTML,POURRAFE,BONNAUOR,SCHIERSN,BRANDTRD,CIARLAMO,DALMASJN,DIEZIPK,FALOHUBL,FERRARSE,NIETLIML,SCHWARDL,BARNERFK,BARRASJS,BRUNOME,FLETCHDN,FUJISENS,HESHMAJD,JORDANJL,LIMAMKM,MATTHEPL,REGIDOCS,SHEPHEJE,STEVANVA,WILSONRS,yann,SARCEYOR,AKKERMRR,CHAUFFPE,GUISANPI,HEINZEFR,MEIERKS,MODERSBL,PERRINOR,RUBISN,STUCKIJS,WIESNEJG,BEXVT,BUCZAKWH,FARINEMC,FOUILLGE,HEUTSCDL,MORONVAE,PESICNA,PETRERN,STEINKGD,VARSHNCA,ELBAZAN,JEANNEJE,KERKHOKN,LUDERGL,MAIOLOSO,PEREIRDN,ROUXPE,SCHWARTS,SPRINGJS,WEYFZ,COURTOYN,FOURNIXR,HEERMASL,KOEPPECE,MARTINEE,PIASERJN,PRINTZAA,TRETTIRN,WILLWEWR,BERTHEYK,HOCHSTDL,HOWGRAIT,KUNTZSN,BREMPEML,andreas,benoitf,benoitg,christophe,damien,fabien,louis,olivier,richard,teiva,wojciech,xavierb,xavierh,ALATURVJ,CANHAMMX,CHAILLSE,LEHNERRE,PRADELJN,ROCHATIN,ROUSSEJE,SEILERPP,BRAVOAO,HUERLIRE,RANAWAPI,ZABELWH,DAEMSDK,FISCHERN,STRASSSL,VOSERDL,BRUNML,MEYERSN,BEVILLGY,DAMATAEO,NICOLEJN,VERNGL,BOSONNLN,JOERGEUH,RADEMARD,REHWINTS,bachmafs,ARISZRS,FREYER,JOSTMN,PREVEAVT,RONALDRN,ZBINDEAE,BOMMEPA,GURTNEAX,MAIOLOYO,MARTIPP,MENGPK,OYETANBA,PORTMATS,POTTCS,SIEBERBR,ZIMMERCO,daehleas,eibeckml,lehmanri,IMFELDKL,JONESAE,KAESERMM,KNOPFKN,ROGLHR,TOBLERUS,WINKLEJN,GENOTAPL,BOPPEGE,BRISSAEE,DEVILLNS,BARZILDD,BORELHE,CAMENZML,COLLETAD,DEVINCNS,DRIESSMO,JAUNERRT,SCHLATPP,SZEMROTS,VANINIDL,BOTEZYS,ERNSTRR,FERNANBT,GUERSEHE,BICKOSMK,BOULESFN,CHAMBODN,FLUEKIPR,MHIRIWD,SIEGELHK,LANDHEFN,BEDONIYN,CORBOZJE,PEREZJN,SCHMIDMA,TAPPYAN,WEBERJS,collinae,loribx,FRAUENAS,HARSANTA,PARISOLS,REVERTRD,RUIZHEXR,garrigbt,MUELLEML,SEYDOUOR,BAILLIOR,BAKSHIVK,BORERJC,COQUEURY,mike,BISAZFA,CHENTHCN,CHEVALLC,BARRJS,BARTELCH,LAESSETY,CHEVALLC,MENDOZMT,MERKERPR,MICHELRL,MOTSCHPK,QUINTOCE,RUVILLXR,SIEBERMO"#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
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