https://github.com/VerbalExpressions/JavaVerbalExpressions
Java regular expressions made easy.
https://github.com/VerbalExpressions/JavaVerbalExpressions
Last synced: 7 months ago
JSON representation
Java regular expressions made easy.
- Host: GitHub
- URL: https://github.com/VerbalExpressions/JavaVerbalExpressions
- Owner: VerbalExpressions
- License: mit
- Created: 2013-07-25T16:15:26.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2025-03-02T01:17:03.000Z (8 months ago)
- Last Synced: 2025-03-18T23:40:09.548Z (7 months ago)
- Language: Java
- Homepage:
- Size: 185 KB
- Stars: 2,625
- Watchers: 100
- Forks: 241
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
JavaVerbalExpressions
=====================
[](https://github.com/VerbalExpressions/JavaVerbalExpressions/releases/latest) [](https://maven-badges.herokuapp.com/maven-central/ru.lanwen.verbalregex/java-verbal-expressions)
[
](https://github.com/VerbalExpressions/JSVerbalExpressions)
[](https://coveralls.io/r/VerbalExpressions/JavaVerbalExpressions)
VerbalExpressions is a Java library that helps to construct difficult regular expressions.
## Getting Started
Maven Dependency:
```xml
ru.lanwen.verbalregex
java-verbal-expressions
1.8
```
You can use *SNAPSHOT* dependency with adding to `pom.xml`:
```xml
ossrh
https://oss.sonatype.org/content/repositories/snapshots
```
## Examples
```java
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\.)?(?:[^\ ]*)$
```
```java
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:
```java
VerbalExpression regex = regex(regex().anything().addModifier('i')).endOfLine().build();
```
Or can be used in another regex:
```java
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:
```java
regex().wordChar().nonWordChar()
.space().nonSpace()
.digit().nonDigit()
```
Define captures:
```java
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
* [Parse long strings example](https://github.com/VerbalExpressions/JavaVerbalExpressions/wiki/Parse-long-strings-example)
## Other implementations
You can view all implementations on [VerbalExpressions.github.io](http://VerbalExpressions.github.io)
[
[Javascript](https://github.com/VerbalExpressions/JSVerbalExpressions) -
[PHP](https://github.com/VerbalExpressions/PHPVerbalExpressions) -
[Python](https://github.com/VerbalExpressions/PythonVerbalExpressions) -
[C#](https://github.com/VerbalExpressions/CSharpVerbalExpressions) -
[Objective-C](https://github.com/VerbalExpressions/ObjectiveCVerbalExpressions) -
[Ruby](https://github.com/ryan-endacott/verbal_expressions) -
[Groovy](https://github.com/VerbalExpressions/GroovyVerbalExpressions) -
[Haskell](https://github.com/VerbalExpressions/HaskellVerbalExpressions) -
[C++](https://github.com/VerbalExpressions/CppVerbalExpressions) - ... ([moarr](https://github.com/VerbalExpressions)) ]
## Project released with travis
With help of this tutorial:
https://dracoblue.net/dev/uploading-snapshots-and-releases-to-maven-central-with-travis/