Com o Perl 5.10 use re 'debug';
,. (Oudebugcolor
, mas não consigo formatar a saída corretamente no Stack Overflow.)
$ perl -Mre = depuração -e '"foobar" = ~ / (.) \ 1 /'
Compilando REx "(.) \ 1"
Programa final:
1: ABRIR1 (3)
3: REG_ANY (4)
4: FECHAR1 (6)
6: REF1 (8)
8: FIM (0)
minlen 1
Correspondência de REx "(.) \ 1" contra "foobar"
0 <> <foobar> | 1: ABRIR1 (3)
0 <> <foobar> | 3: REG_ANY (4)
1 <f> <oobar> | 4: FECHAR1 (6)
1 <f> <oobar> | 6: REF1 (8)
falhou ...
1 <f> <oobar> | 1: ABRIR1 (3)
1 <f> <oobar> | 3: REG_ANY (4)
2 <fo> <obar> | 4: FECHAR1 (6)
2 <fo> <obar> | 6: REF1 (8)
3 <foo> <bar> | 8: FIM (0)
Combine com sucesso!
Liberando REx: "(.) \ 1"
Além disso, você pode adicionar espaços em branco e comentários às expressões regulares para torná-las mais legíveis. No Perl, isso é feito com o /x
modificador. Com pcre
, há a PCRE_EXTENDED
bandeira.
"foobar" =~ /
(.) # any character, followed by a
\1 # repeat of previously matched character
/x;
pcre *pat = pcre_compile("(.) # any character, followed by a\n"
"\\1 # repeat of previously matched character\n",
PCRE_EXTENDED,
...);
pcre_exec(pat, NULL, "foobar", ...);