Regex

Swifty regular expressions

This is a wrapper for NSRegularExpression that makes it more convenient and type-safe to use regular expressions in Swift.

Install

Add the following to Package.swift:

.package(url: "https://github.com/sindresorhus/Regex", from: "0.0.0")

Or add the package in Xcode.

Usage

First, import the package:

import Regex

Supported regex syntax.

Examples

Check if it matches:

Regex(#"\d+"#).isMatched(by: "123")
//=> true

Get first match:

Regex(#"\d+"#).firstMatch(in: "123-456")?.value
//=> "123"

Get all matches:

Regex(#"\d+"#).allMatches(in: "123-456").map(\.value)
//=> ["123", "456"]

Replacing first match:

"123🦄456".replacingFirstMatch(of: #"\d+"#, with: "")
//=> "🦄456"

Replacing all matches:

"123🦄456".replacingAllMatches(of: #"\d+"#, with: "")
//=> "🦄"

Named capture groups:

let regex = Regex(#"\d+(?<word>[a-z]+)\d+"#)

regex.firstMatch(in: "123unicorn456")?.group(named: "word")?.value
//=> "unicorn"

Pattern matching:

switch "foo123" {
case Regex(#"^foo\d+$"#):
    print("Match!")
default:
    break
}

API

See the API docs.