import Foundation
let pattern = #"(faturou\s|faturamento de\s|faturei\s|de um faturamento )*(mais\sde\s)*(((((R\$)+(\s)*(\d){1,6}(\s)*((\.|\,)*\d{1,3}|k|mil)*)))+|((de\s(\d){1,3}(k|mil)\spara\s(\d){1,3}(k|mil)))+)(\sde\sfaturamento)*(\sem\s(menos\sde\s)*(\d{1,2})\sdias)*(\sfoi o que a minha (aluna|cliente|mentoranda|mentorada)+ faturou)*(\sapós o curso)*"#
let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .caseInsensitive])
let testString = #"""
(já\s)*(como\s)*(em\sum\s[u|ú]nico\sdia\s(minha\smentoreanda\s)*
mentorada faturou
Foram mais de R$50.000 após o curso
mentora que já faturou mais de R$ 670(com ou sem espaço)mil
Assim como eu sai de um faturamento de 10k para 300k
mentora que já faturei mais de R$ 670.000,00(com ou sem espaço)mil
Em 2022 R$1950 tudo isso por conta da mudança de posicionamento
Em um único dia minha mentoreanda faturou R$9.600
R$62.000 em 30 dias
R$62k em 30 dias
R$62 k em 30 dias
R$62mil em 30 dias
R$62 mil em 30 dias
R$5.014 foi o que a minha aluna faturou
R$12.000 de faturamento em menos de 15 dias de aplicação
faturou R$62.000 em 30 dias
faturei R$62k em 30 dias
faturamento de R$62 k em 30 dias
R$62mil em 30 dias
R$62 mil em 30 dias
R$5.014 foi o que a minha aluna faturou
R$12.000 de faturamento em menos de 15 dias de aplicação
Esse foi o resultado da @ utilizando o (meu) método
77k em 25 dias de aplicação
(já\s|como\seu\ssai\sde\sum\s|em\sum\s[u|ú]nico\sdia\s(minha\smentoreanda\s|mentorada\s))*
Reais
(((R\$)+(\s)*(\d){1,6}(\s)*((\.|\,)*\d{1,3}|k|mil)*))+
parte decimal
((\.)(\d){1,3}|(\,)(\d){1,3})*
de tanto a tanto
(de(\d){1,3}\spara\s(\d){1,3})+
((((R\$)+(\s)*(\d){1,6}((\.)(\d){1,3}|(\,)(\d){1,3})*(\s)*(k|mil)*))+|(de(\d){1,3}\spara\s(\d){1,3})+)
"""#
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