:
^
と\A
の違いは何ですか?$
と\Z
の違いは何ですか?
:
^
と\A
の違いは何ですか?$
と\Z
の違いは何ですか?シングルラインモードでは、$
は、文字列の末尾に一致するか、文字列の最後に改行の直前に一致します。複数行モードの場合、$
は文字列の各改行の前に一致します。 \Z
は、行モードに関係なく常に文字列の末尾にのみ一致します。 ^
と同じ\A
と同じです。
申し訳ありませんが、それは正しくないです。 '\ Z'は最後の文字が' \ n'なら文字列の終わりの前の文字列** OR ** **の終わりにマッチします。オハイオ州ジャスト・イン・ケースのバージョンでは、 '\ z'(BIG ZEDではない)が必要です。これは、文字が残っていない場合にのみ一致することが保証されています。いくつかの正規表現言語では、改行として扱われるものは柔軟性があります。あなたが運が良ければ '(?:(?> \ r \ n)| \ v)'に一致します。ここで '\ v 'はUnicodeの' \ p {Vertical_Space}'プロパティです。 – tchrist
もう一つのこと:シングルラインモードは、マルチラインモードの反対ではありません。彼らは完全に別々です。マルチラインモードは、記述したように '^'と '$'の動作を変更しますが、シングルラインモードでは '.'で改行文字をマッチさせることができます。 –
tchristのコメントへの注意:Pythonの 're'では' \ Z'はPerl/.NET/Java/PCREの '\ z'と同じです。 –
文字列を複数の行にマッチさせる場合は異なります。
^は、各改行後に文字列との先頭で一致することができます。 \ Aは文字列の先頭に一致するだけです
$は、各改行の前に文字列との最後に一致することができます。 \ Zは文字列の最後にのみ一致します。
perldoc perlreを参照してください。
\ Aと\ Zは「^」ながら、/ m修飾子は を使用しているとき、彼らは 複数回と一致しないことを除いて、単に「^」と 「$」のようなものと、「$すべての内部線の境界に で一致します。 と一致させるには、 はオプションの末尾改行を無視しません。 は\ zを使用します。
どの言語の正規表現のフレーバですか? –
PHPで。 PHP 5.3はPCRE(Perl互換のReg Ex)のみを使用し、他のENGinesはPCREにとって有利です。だから、基本的にPERLスタイル –
関連:http://stackoverflow.com/questions/4020792/regular-expressions-difference-between-and-a –