Olá pessoal!
Aprendi algo que para mim é novidade, e que de fato, nunca vi utilizarem. Que é a nomeação de grupos na expressão regular, mudando assim como é o comum de utilizarmos como retrovisor. (\1, \2, ...)
A mudança não fica só na expressão regular, pois no retorno dos grupos casados, o nome dado ao grupo virá como chave indicando o valor do grupo. (Ao menos no PHP)
Veja um exemplo no PHP, utilizando uma função que utiliza expressão regular compatível com Perl. (PCRE):
<?php
$string = 'tico-tico';
preg_match('{(?P<tico>tico)-(?P=tico)}',
$string,
$match);
/**
* Array
* (
* [0] => tico-tico
* [tico] => tico
* [1] => tico
* )
*/
?>
Um outro exemplo:
<?php
$string = 'felipensp@gmail.com';
preg_match('{(?P<login>\w+)@(?P<dominio>\S+)}',
$string,
$match);
/**
* Array
* (
* [0] => felipensp@gmail.com
* [login] => felipensp
* [1] => felipensp
* [dominio] => gmail.com
* [2] => gmail.com
* )
*/
?>
Para maiores informações, e como utilizar no
Python, segue o link abaixo:
Para conhecer outros metacaracteres modernosos:
Até a próxima! (: