GitHub - VerbalExpressions/JavaVerbalExpressions: Java regular expressions made easy. (original) (raw)

JavaVerbalExpressions

release Maven Central Coverage Status

VerbalExpressions is a Java library that helps to construct difficult regular expressions.

Getting Started

Maven Dependency:

ru.lanwen.verbalregex java-verbal-expressions 1.8

You can use SNAPSHOT dependency with adding to pom.xml:

ossrh https://oss.sonatype.org/content/repositories/snapshots

Examples

VerbalExpression testRegex = VerbalExpression.regex() .startOfLine().then("http").maybe("s") .then("://") .maybe("www.").anythingBut(" ") .endOfLine() .build();

// Create an example URL String url = "https://www.google.com";

// Use VerbalExpression's testExact() method to test if the entire string matches the regex testRegex.testExact(url); //True

testRegex.toString(); // Outputs the regex used: // ^(?:http)(?:s)?(?:://)(?:www.)?(?:[^\ ]*)$

VerbalExpression testRegex = VerbalExpression.regex() .startOfLine().then("abc").or("def") .build();

String testString = "defzzz";

//Use VerbalExpression's test() method to test if parts if the string match the regex testRegex.test(testString); // true testRegex.testExact(testString); // false testRegex.getText(testString); // returns: def

Builder can be cloned:

VerbalExpression regex = regex(regex().anything().addModifier('i')).endOfLine().build();

Or can be used in another regex:

VerbalExpression.Builder digits = regex().capt().digit().oneOrMore().endCapt().tab(); VerbalExpression regex2 = regex().add(digits).add(digits).build();

Feel free to use any predefined char groups:

regex().wordChar().nonWordChar() .space().nonSpace() .digit().nonDigit()

Define captures:

String text = "aaabcd"; VerbalExpression regex = regex() .find("a") .capture().find("b").anything().endCapture().then("cd").build();

regex.getText(text) // returns "abcd" regex.getText(text, 1) // returns "b"

More complex examples

Other implementations

You can view all implementations on VerbalExpressions.github.io

[Javascript -PHP -Python -C# -Objective-C -Ruby -Groovy -Haskell -C++ - ... (moarr) ]

Project released with travis

With help of this tutorial:https://dracoblue.net/dev/uploading-snapshots-and-releases-to-maven-central-with-travis/