は、私は他の人の正規表現をクリーンアップしていますし、彼らが現在
.*$
で彼らのすべてを終わらせますか?
.*
は、私は他の人の正規表現をクリーンアップしていますし、彼らが現在
.*$
で彼らのすべてを終わらせますか?
.*
.*
は可能な限り一致しますが、デフォルトでは.
は改行と一致しません。一致するテキストに改行があり、MULTILINEになっていてでない場合、.*$
は.*
と一致しない可能性があります。 DOTALLモード。改行なし(またはMULTILINEでない場合)またはDOTALLを設定している場合は、*
が貪欲な操作者であり、可能な限り一致するため、同じです。
最終的には、正解は正規表現エンジンによって異なります。あなたの結果は異なるかもしれません。
Paulは、マルチラインが有効になっていると、動作が異なると言います。あなたは、マルチラインでないなら、異なって振る舞います。私はこれを正しく読んでいますか? – mrtsherman
@mrtshermanあなたは私の読み方が間違っています。 – marcog
$
はマッチが.
が何かを一致するため、常にどうなる文字列の末尾に到達したと主張しています。そう、はい、同じです。
しかし、Paul Creaseyが指摘したように、同じでない場合があります。複数行を有効にすると、$
は複数行の文字列の最後に一致します。しかし、dot-all( "dot"がすべて一致)を有効にしない限り、.
は改行にマッチすることはできません。
必ずしもそうではありませんが、使用されている設定に依存しますが、ほとんどの正規表現エンジンは「複数行」モードを備えています。
私はマルチラインモードではありません – mrtsherman
それらは同じですが、あなたのクリーンアップでは削除しません。 – marcog
詳細な説明ありがとうございます。私は 'multiline option'と 'dotall'の分岐を考えることは考えていませんでした。 – mrtsherman