Rexy

1.0.1

:dragon_face: POSIX Regular Expressions in Swift
vadymmarkov/Rexy

What's New

1.0.1

2020-01-14T13:27:54Z

Update to Swift 5.1 #15

Rexy

CI Status Mac OS X Linux Swift License

Rexy is a pure Swift implementation of POSIX Regular Expressions.

Features

  • Pattern matching
  • Capturing groups
  • Replace method
  • Matching operators
  • Representation of a regular expression error
  • Option sets with default constants for compilation flags (cflag) and regex matching flags (eflag)
  • Unit test coverage
  • No dependencies

Usage

Pattern matching

When you want to check if a given string matches regular expression:

import Rexy

// Regular way
do {
  let regex = try Regex("Tyrannosaurus")
  regex.isMatch("Tyrannosaurus") // => true
  regex.isMatch("Spinosaurus") // => false
} catch {
  print(error)
}

// With custom operators
"Tyrannosaurus" =~ "T.*" // true
"Spinosaurus" =~ "T.*" // false
"Spinosaurus" !~ "T.*" // true

Matches

When you want to search an input string for all occurrences of a regular expression and get the matches:

import Rexy

do {
  let regex = try Regex("[a-z]+")
  regex.matches("a1b1") // ["a", "b"])
} catch {
  print(error)
}

When you're interested only in the first occurrence:

import Rexy

do {
  let regex = try Regex("[a-z]+")
  regex.matches("a1b1") // "a"
} catch {
  print(error)
}

Capturing Groups

When you want to match and capture groups:

import Rexy

do {
  let regex = try Regex("(Tyrannosaurus) (Rex)")
  regex.groups("Tyrannosaurus Rex") // => ["Tyrannosaurus", "Rex"]
  regex.groups("Spinosaurus") // => []
} catch {
  print(error)
}

Replace

When you want to replace all strings that match a regular expression pattern with a specified replacement string:

import Rexy

do {
  let regex = try! Regex("Tyrannosaurus")
  regex.replace("Tyrannosaurus Rex Tyrannosaurus", with: "Dinosaur") // => "Dinosaur Rex Dinosaur"
  regex.replace("Spinosaurus", with: "Dinosaur") // => Spinosaurus
} catch {
  print(error)
}

Installation

Rexy is available through Swift Package Manager. To install it, simply add the following lines to your Package.swift:

.Package(url: "https://github.com/vadymmarkov/Rexy.git", versions: Version(0,1,0)..<Version(1,0,0))

Alternatively, you can install it in your Xcode project by adding a Swift package dependency.

Author

Vadym Markov, markov.vadym@gmail.com

Credits

Credits for inspiration go to POSIXRegex by Zewo

Contributing

Check the CONTRIBUTING file for more info.

License

Rexy is available under the MIT license. See the LICENSE file for more info.

Description

  • Swift Tools 5.1.0
View More Packages from this Author

Dependencies

  • None
Last updated: Sun Apr 14 2024 21:20:30 GMT-0900 (Hawaii-Aleutian Daylight Time)