JavaVerbalExpressions

General

Category
Free
Tag
Utils
License
MIT License
Registered
Jan 11, 2016
Favorites
3
Link
https://github.com/VerbalExpressions/JavaVerbalExpressions
See also
Version Compare
Kurl
UtilsPlus
Dynamic Utils
AXT

Additional

Language
Java
Version
1.8 (Mar 19, 2021)
Created
Jul 25, 2013
Updated
Jan 1, 2024
Owner
VerbalExpressions
Contributors
Julien Millau (devnied)
Santiago Castro (bryant1410)
Kirill Merkushev (lanwen)
Jindrich Vimr (jvimr)
Andreas Holley (dukky)
Pathikrit Bhowmick (pathikrit)
Otávio Nascimento (Tavio)
Mauro de Carvalho (maurodec)
Maksim Gramin (mgramin)
Emil Stolarsky (es)
Ming-yuan Jian (myjian)
Oleg Seletsky (go-oleg)
Dmitriy Tatarenko (tdmitriy)
null (gufengwyx8)
Michael Knapp (msknapp)
Masih H. Derkani (masih)
joe-mojo
Sébastian Le Merdy (seblm)
Show all (27)27
Activity
Badge
Generate
Download
Source code

JavaVerbalExpressions

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

Getting Started

Maven Dependency:

<dependency>
  <groupId>ru.lanwen.verbalregex</groupId>
  <artifactId>java-verbal-expressions</artifactId>
  <version>1.8</version>
</dependency>

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

<repositories>
  <repository>
    <id>ossrh</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
  </repository>
</repositories>

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/