ด้วย Perl use re 'debug';
5.10, (หรือdebugcolor
แต่ฉันไม่สามารถฟอร์แมตเอาต์พุตอย่างถูกต้องใน Stack Overflow)
$ perl -Mre = debug -e '"foobar" = ~ / (.) \ 1 /'
การคอมไพล์ REx "(.) \ 1"
โปรแกรมสุดท้าย:
1: OPEN1 (3)
3: REG_ANY (4)
4: ปิด 1 (6)
6: REF1 (8)
8: END (0)
minlen 1
การจับคู่ REx "(.) \ 1" กับ "foobar"
0 <> <foobar> | 1: OPEN1 (3)
0 <> <foobar> | 3: REG_ANY (4)
1 <f> <oobar> | 4: CLOSE1 (6)
1 <f> <oobar> | 6: ref1 (8)
ล้มเหลว ...
1 <f> <oobar> | 1: OPEN1 (3)
1 <f> <oobar> | 3: REG_ANY (4)
2 <fo> <obar> | 4: CLOSE1 (6)
2 <fo> <obar> | 6: ref1 (8)
3 <foo> <bar> | 8: END (0)
ประสบความสำเร็จในการแข่งขัน!
การเลิก REx: "(.) \ 1"
นอกจากนี้คุณสามารถเพิ่มช่องว่างและความคิดเห็นลงใน regexes เพื่อให้อ่านง่ายขึ้น ใน Perl สิ่งนี้ทำได้ด้วยโมดิ/x
ฟายเออร์ ด้วยpcre
มีPCRE_EXTENDED
ธง
"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", ...);