public final class RegexUtil
extends java.lang.Object
For an example of intended use, see section Testing whether a string is a regular expression in the Checker Framework manual.
Runtime Dependency: Using this class introduces a runtime dependency. This means that you need to distribute (or link to) the Checker Framework, along with your binaries. To eliminate this dependency, you can simply copy this class into your own project.
Modifier and Type | Class and Description |
---|---|
static class |
RegexUtil.CheckedPatternSyntaxException
A checked version of
PatternSyntaxException . |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
asRegex(java.lang.String s)
Returns the argument as a
@Regex String if it is a regex, otherwise throws an error. |
static java.lang.String |
asRegex(java.lang.String s,
int groups)
Returns the argument as a
@Regex(groups) String if it is a regex with at least the
given number of groups, otherwise throws an error. |
static boolean |
isRegex(char c)
Returns true if the argument is a syntactically valid regular expression.
|
static boolean |
isRegex(java.lang.String s)
Returns true if the argument is a syntactically valid regular expression.
|
static boolean |
isRegex(java.lang.String s,
int groups)
Returns true if the argument is a syntactically valid regular expression with at least the
given number of groups.
|
static @Nullable java.lang.String |
regexError(java.lang.String s)
Returns null if the argument is a syntactically valid regular expression.
|
static @Nullable java.lang.String |
regexError(java.lang.String s,
int groups)
Returns null if the argument is a syntactically valid regular expression with at least the
given number of groups.
|
static @Nullable java.util.regex.PatternSyntaxException |
regexException(java.lang.String s)
Returns null if the argument is a syntactically valid regular expression.
|
static @Nullable java.util.regex.PatternSyntaxException |
regexException(java.lang.String s,
int groups)
Returns null if the argument is a syntactically valid regular expression with at least the
given number of groups.
|
@Pure @EnsuresQualifierIf(result=true, expression="#1", qualifier=Regex.class) public static boolean isRegex(java.lang.String s)
s
- string to check for being a regular expression@Pure @EnsuresQualifierIf(result=true, expression="#1", qualifier=Regex.class) public static boolean isRegex(java.lang.String s, int groups)
s
- string to check for being a regular expressiongroups
- number of groups expectedgroups
groups@Pure @EnsuresQualifierIf(result=true, expression="#1", qualifier=Regex.class) public static boolean isRegex(char c)
c
- char to check for being a regular expression@SideEffectFree public static @Nullable java.lang.String regexError(java.lang.String s)
s
- string to check for being a regular expression@SideEffectFree public static @Nullable java.lang.String regexError(java.lang.String s, int groups)
s
- string to check for being a regular expressiongroups
- number of groups expected@SideEffectFree public static @Nullable java.util.regex.PatternSyntaxException regexException(java.lang.String s)
s
- string to check for being a regular expression@SideEffectFree public static @Nullable java.util.regex.PatternSyntaxException regexException(java.lang.String s, int groups)
s
- string to check for being a regular expressiongroups
- number of groups expected@SideEffectFree public static java.lang.String asRegex(java.lang.String s)
@Regex String
if it is a regex, otherwise throws an error.
The purpose of this method is to suppress Regex Checker warnings. It should be very rarely
needed.s
- string to check for being a regular expressionjava.lang.Error
- if argument is not a regex@SideEffectFree public static java.lang.String asRegex(java.lang.String s, int groups)
@Regex(groups) String
if it is a regex with at least the
given number of groups, otherwise throws an error. The purpose of this method is to suppress
Regex Checker warnings. It should be very rarely needed.s
- string to check for being a regular expressiongroups
- number of groups expectedjava.lang.Error
- if argument is not a regex