std::regex_traits<CharT>:: lookup_collatename
| 
           
           
            
             template
            
            
             <
            
            
             class
            
            ForwardIt
            
             >
            
             
         string_type lookup_collatename ( ForwardIt first, ForwardIt last ) const ;  | 
         ||
       Falls die Zeichenfolge
       
        
         [
        
        
         
          first
         
        
        
         ,
        
        
         
          last
         
        
        
         )
        
       
       den Namen eines gültigen Sortierelements in der aktuell eingestellten Locale repräsentiert, gibt sie den Namen dieses Sortierelements zurück. Andernfalls wird eine leere Zeichenkette zurückgegeben.
      
       Kollationselemente sind die Symbole in POSIX-Regulären Ausdrücken zwischen
       
        [.
       
       und
       
        .]
       
       . Zum Beispiel passt
       
        [.a.]
       
       auf das Zeichen
       
        a
       
       in der C-Locale.
       
        [.tilde.]
       
       passt ebenfalls auf das Zeichen
       
        ~
       
       in der C-Locale.
       
        [.ch.]
       
       passt auf das Digraph
       
        ch
       
       in der tschechischen Locale, erzeugt aber
       
        
         std::regex_error
        
       
       mit Fehlercode
       
        
         std::regex_constants::error_collate
        
       
       in den meisten anderen Locales.
      
Parameter
| first, last | - | ein Paar von Iteratoren, das die Zeichenfolge bestimmt, die einen Kollationselementnamen darstellt | 
| Typanforderungen | ||
         -
         
          ForwardIt
         
         muss die Anforderungen von
         
          
           LegacyForwardIterator
          
         
         erfüllen.
         | 
       ||
Rückgabewert
Die Darstellung des benannten Sortierelements als Zeichenkette.
Beispiel
#include <iostream> #include <regex> #include <string> struct noisy_traits : std::regex_traits<char> { template<class Iter> string_type lookup_collatename(Iter first, Iter last) const { string_type result = regex_traits::lookup_collatename(first, last); std::cout << "regex_traits<>::lookup_collatename(\"" << string_type(first, last) << "\") returns \"" << result << "\"\n"; return result; } }; int main() { std::string str = "z|}a"; // C locale collation order: x,y,z,{,|,},~ std::basic_regex<char, noisy_traits> re("[x-[.tilde.]]*a", std::regex::basic); std::cout << std::boolalpha << std::regex_match(str, re) << '\n'; }
Mögliche Ausgabe:
regex_traits<>::lookup_collatename("tilde") returns "~"
true