
開発言語:Perl(Win32)
ヴァージョン:5.8.4.810 perl.exeのプロパティー参照
長文の正規表現にパターンマッチを試みているのですが、
本来マッチするはずの文字列に対して、マッチしません。
しかし、正規表現が長文のため、なかなかデバッグが進みません。
どのように、パターンマッチが進んでいるか見ることが出来ればデバック作業が早くなると思うのですが、
私はその方法を知りません。
そこで、質問なのですが、Perlが正規表現をどのように解釈して、パターンマッチを進めているか、確認する方法はないのでしょうか?
できれば、パターンマッチ実行中、解釈している位置と、文字列をレポートとして出力する方法があれば、それを知りたいと思います。
No.2
- 回答日時:
> そもそも、マッチが成功しない状況にあります。
とおっしゃる意味は、期待通りのマッチだけでなく、何もマッチしない、という意味ですね?
> その変数は、マッチが成功した際に値がセットするものなので
上記の意味で、これらの変数はマッチが失敗しても、どこかにマッチしさえすれば格納されます。なので、たとえば、必ずマッチするはずの文字列をどこかに埋め込んで(あるいは逆にパターンからマッチして欲しい部分を削除して)おけば、おっしゃるような、
> +や*が何処までマッチしているか
は、少なくとも確認できます。
そうではなく、perlが内部的に解析する過程を知りたい、ということでしたら、すみません、私にはわかりません。
量指定子が意図しない範囲にマッチしてしまう場合は、最短マッチを使ってみると解決することもあります。
この回答への補足
Perlの正規表現の拡張構文や、最短マッチ、最長マッチを使っている正規表現を使用しています。
それゆえに、長く複雑な正規表現になっています。
もっと簡単な正規表現に書き換えることも可能なのですが、パターンマッチに時間が掛かるため、どうしても複雑な正規表現になっています。
現在、短い正規表現でデバッグしているのですが、
やはり、時間が掛かっています。
perlが内部的にどのように解析して、実行しているのか、それが知りたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
#!/usr/bin/perlで書きだしたCG...
-
perlで2次元配列をサブルーチ...
-
perlのrequireの動き方について...
-
INDIRECT 横に再度抽出したい
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
Perlのエラーについてご教授く...
-
ファイルアイコンの左下に緑の□...
-
perlでリテラル値はメモリにど...
-
perlについての質問
-
Perlでファイルの末尾から指定...
-
openした後、closeしないでプロ...
-
perl 正規表現でエラー
-
親ループのループ変数$_を子ル...
-
3から100までの素数を配列に入...
-
[perl] perlで書き込み中に、PC...
-
アルファベットに付いて質問し...
-
perlのflock関数でロックをかけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチングアプリで新しくアカ...
-
正規表現
-
正規表現の実行レポートは作成...
-
タグを正規表現で完全に削除
-
この正規表現の意味は?
-
謎の半角■文字を正規表現で文字...
-
文字同士の比較~抜き出し
-
文字のマッチングについて
-
Perlで別ファイルから文字列の抽出
-
/ [ 【 の文字をマッチさ...
-
置き換えについて
-
正規表現 \\b123bと^123$は同じ?
-
perlで記号除去を行いたいので...
-
リナックスの grepコマンド ...
-
正規表現で2種類ある括弧を区別...
-
記号とあらば、1文字でも全て...
-
perlのマッチでマッチしたい物...
-
正規表現の展開
-
パイプ以外をエスケープしてマ...
-
3回以上連続する文字(どんな...
おすすめ情報