Bibliothèque Regex C ++ - regex_search

La description

Il renvoie si une sous-séquence de la séquence cible (le sujet) correspond à l'expression régulière rgx (le modèle). La séquence cible est soit s, soit la séquence de caractères entre le premier et le dernier, selon la version utilisée.

Déclaration

Voici la déclaration pour std :: regex_search.

template <class charT, class traits>
   bool regex_search (const charT* s, const basic_regex<charT,traits>& rgx,
   regex_constants::match_flag_type flags = regex_constants::match_default);

C ++ 11

template <class charT, class traits>
   bool regex_search (const charT* s, const basic_regex<charT,traits>& rgx,
   regex_constants::match_flag_type flags = regex_constants::match_default);

C ++ 14

template <class charT, class traits>
  bool regex_search (const charT* s, const basic_regex<charT,traits>& rgx,
          regex_constants::match_flag_type flags = regex_constants::match_default);

Paramètres

  • s - C'est une chaîne avec la séquence cible.

  • rgx - C'est un objet basic_regex à faire correspondre.

  • flags - Il est utilisé pour contrôler la correspondance entre rgx.

  • m - C'est un objet de type match_results.

Valeur de retour

Il renvoie true si rgx correspond à une sous-séquence de la séquence cible. faux sinon.

Exceptions

No-noexcept - cette fonction membre ne lève jamais d'exceptions.

Exemple

Dans l'exemple ci-dessous pour std :: regex_search.

#include <iostream>
#include <string>
#include <regex>

int main () {
   std::string s ("this subject has a submarine as a subsequence");
   std::smatch m;
   std::regex e ("\\b(sub)([^ ]*)");

   std::cout << "Target sequence: " << s << std::endl;
   std::cout << "Regular expression: /\\b(sub)([^ ]*)/" << std::endl;
   std::cout << "The following matches and submatches were found:" << std::endl;

   while (std::regex_search (s,m,e)) {
      for (auto x:m) std::cout << x << " ";
      std::cout << std::endl;
      s = m.suffix().str();
   }

   return 0;
}

La sortie devrait être comme ça -

Target sequence: this subject has a submarine as a subsequence
Regular expression: /\b(sub)([^ ]*)/
The following matches and submatches were found:
subject sub ject 
submarine sub marine 
subsequence sub sequence