Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::regex_...gex_iterator(3) C++ Standard Libarystd::regex_...gex_iterator(3)

NAME
       std::regex_iterator::regex_iterator - std::regex_iterator::regex_itera-
       tor

Synopsis
	  regex_iterator();				  (1) (since C++11)
	  regex_iterator( BidirIt a, BidirIt b,

	  const	regex_type& re,				  (2) (since C++11)
	  std::regex_constants::match_flag_type	m =

	  std::regex_constants::match_default );
	  regex_iterator( const	regex_iterator&	);	  (3) (since C++11)
	  regex_iterator( BidirIt, BidirIt,

	  const	regex_type&&,				  (4) (since C++11)
	  std::regex_constants::match_flag_type	=

	  std::regex_constants::match_default )	= delete;

	  Constructs a new regex_iterator:

	  1) Default constructor. Constructs an	end-of-sequence	iterator.
	  2)  Constructs  a regex_iterator from	the sequence of	characters [a,
       b), the regular
	  expression re, and a flag m that  governs  matching  behavior.  This
       constructor
	  performs an initial call to std::regex_search	with this data.	If the
       result of this
	  initial call is false, *this is set to an end-of-sequence iterator.
	  3) Copies a regex_iterator.
	  4)  The  overload  (2)  is not allowed to be called with a temporary
       regex, since the
	  returned iterator would be immediately invalidated.

Parameters
	  a  - LegacyBidirectionalIterator to  the  beginning  of  the	target
       character sequence
	  b   -	LegacyBidirectionalIterator to the end of the target character
       sequence
	  re - regular expression used to search the target character sequence
	  m  - flags that govern the behavior of re

Example
       // Run this code

	#include <iostream>
	#include <regex>
	#include <string_view>

	int main()
	{
	    constexpr std::string_view str{"#ONE:*p=&Mass; #Two:MOV %rd,42"};
	    const std::regex re("[a-w]");

	    // create regex_iterator, overload (2)
	    auto it = std::regex_iterator<std::string_view::iterator>{
		str.cbegin(), str.cend(),
		re // re is lvalue; if an immediate expression was used
		   // instead, e.g. std::regex{"[a-z]"}, this would
		   // produce an error - overload (4) is deleted
	    };

	    for	(decltype(it) last /* overload (1) */; it != last; ++it)
		std::cout << (*it).str();
	}

Output:
	password

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	   Applied to	 Behavior  as  published	       Correct
       behavior
			      a	regex_iterator constructed
	  LWG  2332  C++11	from a temporary	     such construction
       is disallowed via
			      basic_regex became invalid   a deleted overload
			      immediately

http://cppreference.com		  2022.07.31	 std::regex_...gex_iterator(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::regex_iterator::regex_iterator&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help