Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
h0tk3y committed Oct 16, 2016
2 parents ed62ebc + 773c7f0 commit f26eb8a
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# regex-dsl
A Kotlin DSL for regular expressions

Provides a Groovy-style builder for regex

val r = regex {
group("prefix") {
literally("+")
oneOrMore { digit(); letter() }
}
3 times { digit() }
literally(";")
matchGroup("prefix")
}

Currently supports:

* `literally("text")` that escapes the `text`
* `anyChar()`, `digit()`, `letter()`, `alphaNumeric()`, `whitespace()`, `wordBoundary()`, `wordCharacter()`
* `startOfString()`, `endOfString()`
* `optional("text")` and `optional { /* inner regex */ }`,

`oneOrMore("text")` and `oneOrMore { /* inner regex */ }`,

`zeroOrMore("text")` and `zeroOrMore { /* inner regex */ }`

* `n times ("text")` and `n times { /* inner regex */ }`,

`n timesOrMore ("text")` and `n timesOrMore { /* inner regex */ }`,

`n timesOrLess ("text")` and `n timesOrLess { /* inner regex */ }`,

`n..m times ("text")` and `n..m times { /* inner regex */ }`

* `index = group { /* inner regex */ }` and `matchGroup(index)`,

`group("name") { /* inner regex */ }` and `matchGroup("name")`

* `anyOf('a', 'b', 'c')`,

`anyOf('a'..'z', 'A'..'Z', '0'..'9')`,

`anyOf("abc", "def", "xyz")`,

`anyOf({ /* inner regex*/ }, { /* inner regex *? })`

* `include(anotherRegex)`

0 comments on commit f26eb8a

Please sign in to comment.