This project provides an easy solution to extract captured groups from a string by a PCRE2 compatible regular expression.
This package builds with Swift Package Manager and is part of the Perfect project but can also be used as an independent module.
Swift 4.2+
$ brew install pcre2
$ sudo apt-get install libpcre2-dev
Add dependencies to your Package.swift
.package(url: "https://github.com/RockfordWei/Perfect-PCRE2.git",
from: "3.1.0")
// on target section:
.target(
// name: "your project name",
dependencies: ["PerfectPCRE2"]),
Add the following header to your swift source code:
import PerfectPCRE2
let lines = try """
HTTP/1.1 100 continue
HTTP/1.0 200 OK
""".pcre2Match(pattern: "([A-Z]+)/([0-9.]+)\\s+([0-9]+)\\s+(.*)")
lines.forEach { line in
print("full: $0", line[0]) // the full match
print("head: $1", line[1]) // "HTTP"
print("vers: $2", line[2]) // 1.1 or 1.0
print("code: $3", line[3]) // 100 or 200
print("stat: $4", line[4]) // continue or OK
}
For more information on the Perfect project, please visit perfect.org.