次の正規表現があります
((\$|(\\\[)).*?(\$|(\\\])))
との間のすべてをキャプチャする必要が$$
あり、 http://gskinner.com/RegExr/\[\]
でテストしましたが、動作しています。
PHP バリアントは (2 つのバックスラッシュ)
((\$|(\\\\\[)).*?(\$|(\\\\\])))
その正規表現に基づいてテキストを分割したいと思います。これらの小さなグループではなく、最初の (そして最大のグループ) のみを使用していることをどのように判断できますか?
preg_split('/((\$|(\\\\\[)).*?(\$|(\\\\\])))/', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
したがって、テキストThis is my $test$ for something.
の場合は配列を取得する必要があります
[0] => This is my
[1] => $test$
[2] => for something.
しかし、私は得る
[0] => This is my
[1] => $test$
[2] => $
[3] =>
[4] => $
[5] => for something.