([\w]+)<\/span>/'; // Use preg_match_all to find all matches in the input preg_match_all($pattern, $input, $matches, PREG_SET_ORDER); // Loop through each match and replace the content inside the span tag foreach ($matches as $match) { $shortcode = $match[1]; // Content inside the data-shortcode attribute // Create the replacement string and replace the match in the input $replacement = '{{' . strtolower($shortcode) . '}}'; $input = str_replace($match[0], $replacement, $input); } return $input; } }