GitHub - VerbalExpressions/JavaVerbalExpressions: Java regular expressions made easy. (original) (raw)
JavaVerbalExpressions
VerbalExpressions is a Java library that helps to construct difficult regular expressions.
Getting Started
Maven Dependency:
ru.lanwen.verbalregex java-verbal-expressions 1.8You can use SNAPSHOT dependency with adding to pom.xml:
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/