SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
seqan3::regex_validator Class Reference

A validator that checks if a matches a regular expression pattern. More...

#include <seqan3/argument_parser/validators.hpp>

+ Inheritance diagram for seqan3::regex_validator:

Public Types

using option_value_type = std::string
 Type of values that are tested by validator.

Public Member Functions

std::string get_help_page_message () const
 Returns a message that can be appended to the (positional) options help page info.
void operator() (option_value_type const &cmp) const
 Tests whether cmp lies inside values. More...
template<std::ranges::forward_range range_type>
void operator() (range_type const &v) const
 Tests whether every filename in list v matches the pattern. More...
 regex_validator (std::string const &pattern_)
 Constructing from a vector. More...

Additional Inherited Members

Detailed Description

A validator that checks if a matches a regular expression pattern.

On construction, the validator must receive a pattern for a regular expression. The pattern variable will be used for constructing an std::regex and the validator will call std::regex_match on the command line argument. Note: A regex_match will only return true if the strings matches the pattern completely (in contrast to regex_search which also matches substrings).

The class than acts as a functor, that throws a seqan3::validation_error exception whenever string does not match the pattern.

int main(int argc, const char ** argv)
seqan3::argument_parser myparser{"Test", argc, argv}; // initialize
std::string my_string;
seqan3::regex_validator my_validator{"[a-zA-Z]+@[a-zA-Z]+\\.com"};
myparser.add_option(my_string,'s',"str","Give me a string.",
// an exception will be thrown if the user specifies a string
// that is no email address ending on .com
catch (seqan3::argument_parser_error const & ext) // the user did something wrong
std::cerr << "[PARSER ERROR] " << ext.what() << "\n"; // customize your error message
return -1;
seqan3::debug_stream << "email address given by user passed validation: " << my_string << "\n";
return 0;
Meta-Header for the argument parser module.
Argument parser exception that is thrown whenever there is an error while parsing the command line ar...
Definition: exceptions.hpp:49
The SeqAn command line parser.
Definition: argument_parser.hpp:154
A validator that checks if a matches a regular expression pattern.
Definition: validators.hpp:912
Provides seqan3::debug_stream and related types.
@ standard
The default were no checking or special displaying is happening.
Definition: auxiliary.hpp:239
debug_stream_type debug_stream
A global instance of seqan3::debug_stream_type.
Definition: debug_stream.hpp:42
T what(T... args)

Constructor & Destructor Documentation

◆ regex_validator()

seqan3::regex_validator::regex_validator ( std::string const &  pattern_)

Constructing from a vector.

[in]pattern_The pattern to match.

Member Function Documentation

◆ operator()() [1/2]

void seqan3::regex_validator::operator() ( option_value_type const &  cmp) const

Tests whether cmp lies inside values.

[in]cmpThe value to validate.

◆ operator()() [2/2]

template<std::ranges::forward_range range_type>
void seqan3::regex_validator::operator() ( range_type const &  v) const

Tests whether every filename in list v matches the pattern.

Template Parameters
range_typeThe type of range to check; must model std::ranges::forward_range and the value type must be convertible to std::string.
vThe input range to iterate over and check every element.

The documentation for this class was generated from the following file: