std::regex_traits<CharT>:: lookup_collatename
|
template
<
class
ForwardIt
>
string_type lookup_collatename ( ForwardIt first, ForwardIt last ) const ; |
||
Si la secuencia de caracteres
[
first
,
last
)
representa el nombre de un elemento de intercalación válido en la localidad actualmente imbucida, devuelve el nombre de ese elemento de intercalación. De lo contrario, devuelve una cadena vacía.
Los elementos de intercalación son los símbolos que se encuentran en las expresiones regulares POSIX entre
[.
y
.]
. Por ejemplo,
[.a.]
coincide con el carácter
a
en la configuración regional C.
[.tilde.]
coincide con el carácter
~
en la configuración regional C también.
[.ch.]
coincide con el dígrafo
ch
en la configuración regional checa, pero genera
std::regex_error
con código de error
std::regex_constants::error_collate
en la mayoría de las otras configuraciones regionales.
Parámetros
| first, last | - | un par de iteradores que determina la secuencia de caracteres que representa un nombre de elemento de intercalación |
| Requisitos de tipo | ||
-
ForwardIt
debe cumplir con los requisitos de
LegacyForwardIterator
.
|
||
Valor de retorno
La representación del elemento de intercalación nombrado como una cadena de caracteres.
Ejemplo
#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'; }
Salida posible:
regex_traits<>::lookup_collatename("tilde") returns "~"
true