Как получить данные по шаблону с помощью preg_match?
Если нужно только получить$str = "@1@ @2@";
preg_match_all("/@(\d+)@/", $str, $matches);
var_dump($matches[1]); // Массив ID
Если нужно изменить на что-то другое (скажем, ссылку)$str = "@1@ @2@";
echo preg_replace_callback("/@(\d+)@/", function($arr) {
    return "<a href='cards/" . $arr[1] . "'>@" . $arr[1] . "@</a>"; // В $arr[1] ID
}, $str);
Если нужно только получить$str = "@1@ @2@";
preg_match_all("/@(\d+)@/", $str, $matches);
var_dump($matches[1]); // Массив ID
Если нужно изменить на что-то другое (скажем, ссылку)$str = "@1@ @2@";
echo preg_replace_callback("/@(\d+)@/", function($arr) {
    return "<a href='cards/" . $arr[1] . "'>@" . $arr[1] . "@</a>"; // В $arr[1] ID
}, $str);