@Pattern
The @Pattern
annotation may be applied to fields annotated with @Option
and @Arguments
to limit the values of the option to those matching a given regular expression e.g.
@Option(name = "--tel")
@Pattern(pattern = "(\\+1-)?\\d{3}-\\d{3}-\\d{4}",
description = "Must provide a telephone number in standard US format e.g. +1-800-123-4567")
public String tel;
Here we require that the --tel
option be a telephone number in the standard US format.
You can use the flags
field of the annotation to specify the flags that apply to the regular expression. Airline uses the standard JVM java.util.regex.Pattern
and so this field takes an integer which is interpreted as a bitmask of the various JVM constants e.g.
@Option(name = "--other")
@Pattern(pattern = "foo|bar|foobar", flags = java.util.regex.Pattern.CASE_INSENSITIVE)
public String other;
Requires that the option meet the regular expression case insensitively i.e. FOO
would be considered a valid value under this regular expression
To restrict values to specific sets of values it is likely more efficient to use the @AllowedRawValues
or @AllowedValues
annotations.
To place simple string related restrictions some combination of @NotBlank
, @NotEmpty
, @MaxLength
and @MinLength
may also be useful.
For simple prefix/suffix constraints you can use the @StartsWith
and @EndsWith
annotations.
This documentation is itself open source and lives in GitHub under the docs/ directory.
I am not a professional technical writer and as the developer of this software I can often make assumptions of
knowledge that you as a user reading this may not have. Improvements to the documentation are always welcome, if you
have suggestions for the documentation please submit pull requests to the main
branch.