Eğer normal bir dize içinde bu json-dizeleri tanımlamak gerekir demek olduğundan, bu deseni kullanabilirsiniz:
'/\[\[.*?]]/s'
anlamı:
\[\[ # match two consecutive '['-s
.*? # reluctantly match any character
]] # match two consecutive ']'-s
Çünkü s
bayrağı, .
regex de satır sonları maç olacak.
Demo:
$text = '<p>blahhah blahaa blahhah blahaablahhah blahaablahhah
blahaablahhah blahaablahhah blahaablahhah blahaablahhah
blahaablahhah blahaa [[{"type":"media","view_mode":"small",
"fid":"1","attributes":{"width":0,"height":0,"src":
"localhost/d7mw/sites/…;}}]] more blah more blah more blah
more blahmore blah more blahmore blah more blahmore blah
more blahmore blah more blahmore blah more blahmore blah
more blahmore blah more blahmore blah more blahmore blah
more blah</p>';
preg_match_all('/\[\[.*?]]/s', $text, $matches);
print_r($matches);
Hangi çıktısı:
Array
(
[0] => Array
(
[0] => [[{"type":"media","view_mode":"small",
"fid":"1","attributes":{"width":0,"height":0,"src":
"localhost/d7mw/sites/…;}}]]
)
)