任意の文字に一致する正規表現を見ています。私はそれを知っています。改行以外のプレースホルダーです。以下のこのコードを考えると:
$fruits = "One\nTwo\nThree";
preg_match_all('/^(.*)$/', $str, $matches);
print_r($matches);
なぜそれはまったく一致しないのですか?$matches[0]はOneTwoThreeになると思いますか?
任意の文字に一致する正規表現を見ています。私はそれを知っています。改行以外のプレースホルダーです。以下のこのコードを考えると:
$fruits = "One\nTwo\nThree";
preg_match_all('/^(.*)$/', $str, $matches);
print_r($matches);
なぜそれはまったく一致しないのですか?$matches[0]はOneTwoThreeになると思いますか?
修飾子「s」を正規表現に追加します。
この修飾子が設定されている場合、パターン内のドットメタ文字は、改行を含むすべての文字と一致します。これがないと、改行は除外されます。この修飾子は、Perlの/s修飾子と同等です。[^ a]などの負のクラスは、この修飾子の設定に関係なく、常に改行文字と一致します。
$fruits = "One\nTwo\nThree";
preg_match_all('/^(.*)$/s', $fruits, $matches);
print_r($matches);
アップデート:
$ FRuitsを一重引用符で囲むと、改行はそのように扱われず、置換も機能します。イベントは「s」修飾子がありません。しかし、出力が期待どおりかどうかはわかりません;)
$fruits = 'One\nTwo\nThree';
preg_match_all('/^(.*)$/', $fruits, $matches);
print_r($matches);