import Foundation
let pattern = #"commer.{1,5} autour"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
[NE PAS PRENDRE EN COMPTE]
----------------------------------------------------------
-> R1: environnement (\w{1,5}\s)?comme
environnement commercial : boulangerie, supérette, boucherie, coiffeur
environnement de commerces de proximités (pharmacie,boucherie, boulangerie)
environnement commerçant (pharmacie, boulangerie, boucherie)
environnement commerçant composé de : nicolas, paul, boucherie
--------------------------------
-> R2: enseignes?
enseignes telles que boulangerie ange, picard, boucherie dubocage et biocoop
(enseignes : intersport, v&b, picard, marie blachere, pizza, boucherie)
--------------------------------
-> R3: (voisinage|entour[ée]e)
entourée d'une pizzeria, coiffeur, bar/tabac/presse, boucherie
au voisinage, entre autre : restauration rapide, boucherie, vin et liqueur
voisinage : casino supermarché , burger king, la boucherie
--------------------------------
-> R4 :
commodités tout autour (boulangerie pâtisserie, , coiffeurs)
proximité de commerces tels que : le cic, franprix, boucherie
--------------------------------
-> R5 :comm.* (de|à) proximit[ée]
commerces de proximité déjà installés : pharmacie, bar-tabac, boucherie
commerces de proximité juste à coté : restaurants,boucherie
--------------------------------
-> R6 : (secteur|p[oô]le|zone|rue|centre) commer.{1,5}
proche rue commerçante (boulangerie, boucherie)
près d'une pole commercial composé de boulangeries, boucheries
dans une zone commerciale constitué boulangerie, boucherie
dans secteur commercial, boulangerie, boucherie
situé à l'arrière d'un centre commercial : garage auto, boucherie
--------------------------------
-> R7 : activit[eé]s (non autoris[eé]e?s?|interdites|exclue?s?)
activités non autorisées : - restauration (pas d'extraction) et boucherie
activités interdites : commerce de bouche, boucherie
activités exclues : commerce de bouche, boucherie
--------------------------------
-> R8 :
commerces autour : agence immobilière, boulangerie, boucherie
très bel emplacement, boucherie charcuterie traiteur
--------------------------------
-> R9 :[aà] (c[oô]té|proximité|autour)
boucherie charcuterie traiteur autour
supermarché g20, boucherie à proximité
supermarché g20, boucherie, boulangerie à côté
commerces de proximité juste à coté : restaurants,boucherie
on y trouve aussi des commerces de proximité, boulangeries
disposant de nombreux commerces,
nombreuses offres de restaurations
proche toutes commodités :
tous types d'activité à l'exception de boulangerie, boucherie
services sont à la disposition des utilisateurs :
centre ville se prête à toutes activités, boulangerie, boucherie
rue de boucheries
"""#
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