Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/VerbalExpressions/SwiftVerbalExpressions

Swift Port of VerbalExpressions
https://github.com/VerbalExpressions/SwiftVerbalExpressions

Last synced: 2 months ago
JSON representation

Swift Port of VerbalExpressions

Awesome Lists containing this project

README

        

SwiftVerbalExpressions
======================

[![Build Status](https://travis-ci.org/VerbalExpressions/SwiftVerbalExpressions.svg)](https://travis-ci.org/VerbalExpressions/SwiftVerbalExpressions)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)

## Swift Regular Expressions made easy

SwiftVerbalExpressions is a Swift library that helps to construct difficult regular expressions - ported from the awesome JavaScript [VerbalExpressions](https://github.com/jehna/VerbalExpressions).

## Examples

Here's a couple of simple examples to give an idea of how VerbalExpressions works:

### Testing if we have a valid URL

```swift
// Create an example of how to test for correctly formed URLs
let tester = VerEx()
.startOfLine()
.then("http")
.maybe("s")
.then("://")
.maybe("www")
.anythingBut(" ")
.endOfLine()

// Create an example URL
let testMe = "https://www.google.com"

// Use test() method
if tester.test(testMe) {
print("We have a correct URL") // This output will fire
}
else {
print("The URL is incorrect")
}

// Use =~ operator
if testMe =~ tester {
print("We have a correct URL") // This output will fire
}
else {
print("The URL is incorrect")
}

prin(tester) // Outputs the actual expression used: "^(?:http)(?:s)?(?::\/\/)(?:www)?(?:[^ ]*)$"
```

### Replacing strings

```swift
let replaceMe = "Replace bird with a duck"

// Create an expression that seeks for word "bird"
let verEx = VerEx().find("bird")

// Execute the expression like a normal RegExp object
let result = verEx.replace(replaceMe, with: "duck")

print(result) // Outputs "Replace duck with a duck"
```

### Shorthand for string replace:

```swift
let result2 = VerEx().find("red").replace("We have a red house", with: "blue")

print(result2) // Outputs "We have a blue house"
```

## API documentation

You can find the documentation for the original JavaScript repo on their [wiki](https://github.com/jehna/VerbalExpressions/wiki).

## Contributions

Clone the repo and fork!
Pull requests are warmly welcome!

## Thanks!

Thank you to @jehna for coming up with the awesome original idea!
Thank you to @kishikawakatsumi for ObjectiveCVerbalExpressions from which I borrowed some code!

## Other implementations

You can view all implementations on [VerbalExpressions.github.io](http://VerbalExpressions.github.io)

## Installation and use

This version is under testing, but it supports Swift Package Manager. Therefore it can be included in the project with:

```
.package(
url: "https://github.com/VerbalExpressions/SwiftVerbalExpressions.git",
from: "

```

And:

```
.target(
name: "YourProject",
dependencies: ["VerbalExpressions"]),
```