件名の文字列の改行を考慮したい場合は、「m」修飾子を正規表現に追加する必要があり、おそらく「s」も追加する必要があります。
このスニペットは、あなたが求めていることを行います:
<?php
$test = <<<END
@
String mystr = "test@example.com"
String mystr = test@@@@::example.com;
@
END;
echo preg_replace('/@\s(.*)@\s/sm', "<code>\n$1</code>\n", $test);
?>
出力:
<code>
String mystr = "test@example.com"
String mystr = test@@@@::example.com;
</code>
入力文字列に '@' のペアが複数ある場合、正規表現には 'U' 修飾子を含める必要があります。
<?php
$test = <<<END
@
String mystr = "test@example.com"
String mystr = test@@@@::example.com;
@
@
String mystr2 = "test2@example.com"
String mystr2 = test@@@@2::example.com;
@
END;
echo preg_replace('/@\s(.*)@\s/smU', "<code>\n$1</code>\n", $test);
?>
出力:
<code>
String mystr = "test@example.com"
String mystr = test@@@@::example.com;
</code>
<code>
String mystr2 = "test2@example.com"
String mystr2 = test@@@@2::example.com;
</code>