Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/VerbalExpressions/SwiftVerbalExpressions
- Owner: VerbalExpressions
- License: mit
- Created: 2014-06-10T12:17:16.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-04-08T19:50:12.000Z (almost 7 years ago)
- Last Synced: 2024-10-01T01:41:51.786Z (3 months ago)
- Language: Swift
- Size: 38.1 KB
- Stars: 595
- Watchers: 28
- Forks: 24
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-swift-cn - SwiftVerbalExpressions - VerbalExpressions porting for swift (Libs / Text)
- fucking-awesome-swift - SwiftVerbalExpressions - VerbalExpressions porting. (Libs / Text)
- awesome-swift - SwiftVerbalExpressions - VerbalExpressions porting. (Libs / Text)
- awesome-swift - SwiftVerbalExpressions - Swift Port of VerbalExpressions (Text [🔝](#readme))
- awesome-swift - SwiftVerbalExpressions - VerbalExpressions porting. (Libs / Text)
- awesome - SwiftVerbalExpressions - Swift Port of VerbalExpressions (etc)
- awesome - SwiftVerbalExpressions - Swift Port of VerbalExpressions (etc)
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"]),
```