トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

8-7 組み込みコードでマッチ情報の表示

正規表現パズル


詳説正規表現2版の322ページ
詳説正規表現3版の325ページ
を参考にさせていただきました。


解説

組み込みコードでマッチ情報を表示することができます。
複雑な正規表現のデバッグに使えるかもしれません。


Perlでのソースと実行結果

print "\ntest1\n";
'abc'    =~ m/(?{print "Starting match at [$`|$']\n"})(?=[a-z]{2}$)/;

print "\ntest2\n";
'abcdef' =~ m/(?{print "Starting match at [$`|$']\n"})(?=[a-z]{2}$)/;

print "\ntest3\n";
'XXXXXX' =~ m/(?{print "Starting match at [$`|$']\n"})(?=[a-z]{2}$)/;

#実行結果
test1
Starting match at [|abc]
Starting match at [a|bc]

test2
Starting match at [|abcdef]
Starting match at [a|bcdef]
Starting match at [ab|cdef]
Starting match at [abc|def]
Starting match at [abcd|ef]

test3
Starting match at [|XXXXXX]
Starting match at [X|XXXXX]
Starting match at [XX|XXXX]
Starting match at [XXX|XXX]
Starting match at [XXXX|XX]
Starting match at [XXXXX|X]
Starting match at [XXXXXX|]