Với Perl 5.10 , use re 'debug';
. (Hoặc debugcolor
, nhưng tôi không thể định dạng đầu ra chính xác trên Stack Overflow.)
$ perl -Mre = gỡ lỗi -e '"foobar" = ~ / (.) \ 1 /'
Biên dịch REx "(.) \ 1"
Chương trình cuối cùng:
1: MỞ 1 (3)
3: ĐĂNG KÝ (4)
4: ĐÓNG1 (6)
6: REF1 (8)
8: HẾT (0)
minlen 1
Kết hợp REx "(.) \ 1" với "foobar"
0 <> <foobar> | 1: MỞ 1 (3)
0 <> <foobar> | 3: ĐĂNG KÝ (4)
1 <f> <oobar> | 4: ĐÓNG1 (6)
1 <f> <oobar> | 6: REF1 (8)
thất bại...
1 <f> <oobar> | 1: MỞ 1 (3)
1 <f> <oobar> | 3: ĐĂNG KÝ (4)
2 <fo> <obar> | 4: ĐÓNG1 (6)
2 <fo> <obar> | 6: REF1 (8)
3 <foo> <bar> | 8: HẾT (0)
Trận đấu thành công!
Giải phóng REx: "(.) \ 1"
Ngoài ra, bạn có thể thêm khoảng trắng và nhận xét vào biểu thức để làm cho chúng dễ đọc hơn. Trong Perl, điều này được thực hiện với công cụ /x
sửa đổi. Với pcre
, có PCRE_EXTENDED
cờ.
"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", ...);