ファイルから情報を取得するために、perlで2項演算子を使用しようとしています。私はこの正規表現 このOR演算子がperlで動作しない理由
/(fix|issue)\s*#/mi
を使用しますが、任意の一致を見つけることができません。ファイル内の には、「修正#」と4つの一致があり、「問題番号」の3つの一致があります。
/fix\s*#/mi
/issue\s*#/mi
したがって、ORは7つの一致を返すと仮定しますが、何も返しません。
これらの2行は
Add test for the example in issue #142.
Fix #1190
ファイルに正確にいる私はそれが正しいでしょうか?
ありがとうございます。
バイナリORではなく、正規表現ではORです。あなたの実際の入力を見ることなく、あなたのパターンがうまくいくかどうかは分かりません。 '/ g'がなければ、ゼロがなければ複数の一致を得ることはありません。 – simbabque
入力は1000行以上の大きなファイルです。ファイルは正確に "issue#"と "fix#"を持っています。 – Hukh
ファイルのサイズは本当に私たちにとって重要ではありません。一致するはずの行と一致しない行を含めることができます。さらに、あなたの質問を編集し、あなたが書いた完全なプログラムを含めるようにしてください。以下のチョロバが指摘するように、これはうまくいくはずです。だから、バグはおそらく私たちが見ていないコードにあります。 – simbabque