Class RegexUtil
java.lang.Object
org.checkerframework.checker.regex.util.RegexUtil
Utility methods for regular expressions, most notably for testing whether a string is a regular
 expression.
 
For an example of intended use, see section Testing whether a string is a regular expression in the Checker Framework manual.
Runtime Dependency: If you use this class, you must distribute (or link to) 
 checker-qual.jar, along with your binaries. Or, you can copy this class into your own project.
- 
Nested Class Summary
Nested Classes - 
Method Summary
Modifier and TypeMethodDescriptionReturns the argument as a@Regex Stringif it is a regex, otherwise throws an error.Returns the argument as a@Regex(groups) Stringif it is a regex with at least the given number of groups, otherwise throws an error.static booleaneveryStringMatchesSomeRegex(Collection<String> strings, Collection<@Regex String> regexes) Return true if every string is matched by at least one regex.static booleanisRegex(char c) Returns true if the argument is a syntactically valid regular expression.static booleanReturns true if the argument is a syntactically valid regular expression.static booleanReturns true if the argument is a syntactically valid regular expression with at least the given number of groups.static <@KeyForBottom FROM extends @Nullable @UnknownKeyFor Object,@KeyForBottom TO extends @Nullable @UnknownKeyFor Object> 
List<TO> mapList(Function<? super @KeyForBottom FROM, ? extends @KeyForBottom TO> f, Iterable<@KeyForBottom FROM> iterable) Applies the function to each element of the given iterable, producing a list of the results.matchesNoRegex(Collection<String> strings, Collection<@Regex String> regexes) Return the strings that are matched by no regex.matchesSomeRegex(Collection<String> strings, Collection<@Regex String> regexes) Return the strings such that any one of the regexes matches it.static booleannoStringMatchesAnyRegex(Collection<String> strings, Collection<@Regex String> regexes) Return true if no string is matched by any regex.regexError(String s) Returns null if the argument is a syntactically valid regular expression.regexError(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 PatternSyntaxExceptionReturns null if the argument is a syntactically valid regular expression.static @Nullable PatternSyntaxExceptionregexException(String s, int groups) Returns null if the argument is a syntactically valid regular expression with at least the given number of groups. 
- 
Method Details
- 
isRegex
@Pure @EnsuresQualifierIf(result=true, expression="#1", qualifier=Regex.class) public static boolean isRegex(String s) Returns true if the argument is a syntactically valid regular expression.- Parameters:
 s- string to check for being a regular expression- Returns:
 - true iff s is a regular expression
 
 - 
isRegex
@Pure @EnsuresQualifierIf(result=true, expression="#1", qualifier=Regex.class) public static boolean isRegex(String s, int groups) Returns true if the argument is a syntactically valid regular expression with at least the given number of groups.- Parameters:
 s- string to check for being a regular expressiongroups- number of groups expected- Returns:
 - true iff s is a regular expression with 
groupsgroups 
 - 
isRegex
@Pure @EnsuresQualifierIf(result=true, expression="#1", qualifier=Regex.class) public static boolean isRegex(char c) Returns true if the argument is a syntactically valid regular expression.- Parameters:
 c- char to check for being a regular expression- Returns:
 - true iff c is a regular expression
 
 - 
asRegex
Returns the argument as a@Regex Stringif 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.- Parameters:
 s- string to check for being a regular expression- Returns:
 - its argument
 - Throws:
 Error- if argument is not a regex
 - 
asRegex
Returns the argument as a@Regex(groups) Stringif 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.- Parameters:
 s- string to check for being a regular expressiongroups- number of groups expected- Returns:
 - its argument
 - Throws:
 Error- if argument is not a regex
 - 
regexError
Returns null if the argument is a syntactically valid regular expression. Otherwise returns a string describing why the argument is not a regex.- Parameters:
 s- string to check for being a regular expression- Returns:
 - null, or a string describing why the argument is not a regex
 
 - 
regexError
Returns null if the argument is a syntactically valid regular expression with at least the given number of groups. Otherwise returns a string describing why the argument is not a regex.- Parameters:
 s- string to check for being a regular expressiongroups- number of groups expected- Returns:
 - null, or a string describing why the argument is not a regex
 
 - 
regexException
Returns null if the argument is a syntactically valid regular expression. Otherwise returns a PatternSyntaxException describing why the argument is not a regex.- Parameters:
 s- string to check for being a regular expression- Returns:
 - null, or a PatternSyntaxException describing why the argument is not a regex
 
 - 
regexException
Returns null if the argument is a syntactically valid regular expression with at least the given number of groups. Otherwise returns a PatternSyntaxException describing why the argument is not a regex.- Parameters:
 s- string to check for being a regular expressiongroups- number of groups expected- Returns:
 - null, or a PatternSyntaxException describing why the argument is not a regex
 
 - 
matchesSomeRegex
public static List<String> matchesSomeRegex(Collection<String> strings, Collection<@Regex String> regexes) Return the strings such that any one of the regexes matches it.- Parameters:
 strings- a collection of stringsregexes- a collection of regular expressions- Returns:
 - the strings such that any one of the regexes matches it
 
 - 
everyStringMatchesSomeRegex
public static boolean everyStringMatchesSomeRegex(Collection<String> strings, Collection<@Regex String> regexes) Return true if every string is matched by at least one regex.- Parameters:
 strings- a collection of stringsregexes- a collection of regular expressions- Returns:
 - true if every string is matched by at least one regex
 
 - 
matchesNoRegex
public static List<String> matchesNoRegex(Collection<String> strings, Collection<@Regex String> regexes) Return the strings that are matched by no regex.- Parameters:
 strings- a collection of stringsregexes- a collection of regular expressions- Returns:
 - the strings such that none of the regexes matches it
 
 - 
noStringMatchesAnyRegex
public static boolean noStringMatchesAnyRegex(Collection<String> strings, Collection<@Regex String> regexes) Return true if no string is matched by any regex.- Parameters:
 strings- a collection of stringsregexes- a collection of regular expressions- Returns:
 - true if no string is matched by any regex
 
 - 
mapList
public static <@KeyForBottom FROM extends @Nullable @UnknownKeyFor Object,@KeyForBottom TO extends @Nullable @UnknownKeyFor Object> List<TO> mapList(Function<? super @KeyForBottom FROM, ? extends @KeyForBottom TO> f, Iterable<@KeyForBottom FROM> iterable) Applies the function to each element of the given iterable, producing a list of the results.The point of this method is to make mapping operations more concise. Import it with
import static org.plumelib.util.CollectionsPlume.mapList;
This method is just liketransform, but with the arguments in the other order.To perform replacement in place, see
List.replaceAll.- Type Parameters:
 FROM- the type of elements of the given iterableTO- the type of elements of the result list- Parameters:
 f- a functioniterable- an iterable- Returns:
 - a list of the results of applying 
fto the elements ofiterable 
 
 -