SwiftVerbalExpressions is a Swift library that helps to construct difficult regular expressions - ported from the awesome JavaScript VerbalExpressions.
Here's a couple of simple examples to give an idea of how VerbalExpressions works:
Testing if we have a valid URL// 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)?(?:[^ ]*)$"
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:
let result2 = VerEx().find("red").replace("We have a red house", with: "blue") print(result2) // Outputs "We have a blue house"
You can find the documentation for the original JavaScript repo on their wiki.
Clone the repo and fork! Pull requests are warmly welcome!
Thank you to @jehna for coming up with the awesome original idea!
Thank you to @kishikawakatsumi for ObjectiveCVerbalExpressions from which I borrowed some code!
You can view all implementations on VerbalExpressions.github.io
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"]),
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4