import Foundation
// WARNING: You included a flag that Swift doesn't support: U
// When this flag is set, it inverts the "greediness" of the quantifiers so that they are not greedy by default, but become greedy if followed by '?'.
// As an alternative, this effect can also be achieved by setting a (?U) modifier setting within the pattern or by a question mark behind a quantifier (e.g. .*?).
let pattern = #"\d+?[\r\n]+(.*)3.2.P.4.4.\s+Justification\s+of\s+Specifications"#
let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
let testString = #"""
26
Data related to the point SP-WFI-21-Room process fluids
Sampling Date:16/04/2007
28
Data related to pint SP-WFI-21-Room process fluids
Sampling Date: 20/04/2007
TEST SPECIFICATIONS RESULTS
T.O.C. ≤ 500 ppb 6ppb
Conductivity at 25°C ≤ 1.3 μS.cm-1 1.1 μS.cm-1
Data related to the point of use UP-WFI-07
Sampling Date: 20/04/2007
TEST SPECIFICATIONS RESULTS
Appearance Clear and colourless liquid Conforms
pH 5.0 – 7.0 6.20
Oxidable substances Conforms Conforms
Conductivity at 25°C ≤ 1.3 μS.cm-1 1.1 μS.cm-1
0 microrg./100ml
Reference guidelines
− 3AQ11A: Specifications and Control Tests on the Finished Product - EUDRALEX Volume 3A
− Topic Q6A, Step 4 Note for Guidance Specifications: Test procedures and Acceptance Criteria for New
Drug Substances and New Drug Products: Chemical Substances (CPMP/ICH/367/96 - Adopted Nov. 99)
29
3.2.P.4.2 Analytical Procedures
All the analytical procedures related to the control of excipients are those described in the
corresponding Ph. Eur. monographs current edition (refer to 3.2.P.4.1).
Reference guidelines
− Topic Q2A, Step 5 Note for Guidance on Validation of Analytical Methods: Definitions and Terminology
(CPMP/ICH/381/95 - adopted Nov. 94)
− 3AQ14A: Validation of Analytical Procedures: Definition and Terminology - EUDRALEX Volume 3A
− 3AQ13A: Validation of Analytical Procedures: Methodology - EUDRALEX Volume 3A
− Topic Q6A, Step 4 Note for Guidance Specifications: Test procedures and Acceptance Criteria for New
Drug Substances and New Drug Products: Chemical Substances (CPMP/ICH/367/96 - Adopted Nov. 99)
3.2.P.4.3 Validation of Analytical Procedures
All the analytical procedures proposed to control the excipients are those reported in Ph. Eur.
monographs current edition and no variation has been introduced; each method is validated
concerning specificity and linearity, in order to grant suitability of the instruments used.
Reference guidelines:
− Topic Q2A, Step 5 Note for Guidance on Validation of Analytical Methods: Definitions and Terminology
(CPMP/ICH/381/95 - adopted Nov. 94)
− 3AQ14A: Validation of Analytical Procedures: Definition and Terminology - EUDRALEX Volume 3A
− 3AQ13A: Validation of Analytical Procedures: Methodology - EUDRALEX Volume 3A
3.2.P.4.4. Justification of Specifications
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
if let firstMatch = regex.firstMatch(in: testString, range: stringRange) {
let result: [String] = (1 ..< firstMatch.numberOfRanges).map { (testString as NSString).substring(with: firstMatch.range(at: $0)) }
print(result)
} else {
print("No matches were found.")
}
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