How to extract a substring between two tags using RegEx in PHP

1 Answer

0 votes
function extractContentBetweenTags($str, $tagName) {
    // Build a regex pattern using the specified tag name
    $pattern = "/<" . preg_quote($tagName, '/') . ">(.*?)<\/" . preg_quote($tagName, '/') . ">/";

    // Use preg_match to find the content between the tags
    if (preg_match($pattern, $str, $matches)) {
        // Return the content inside the tags
        return $matches[1];
    }

    // Return an empty string if no match is found
    return "";
}

$str = "abcd <tag>efg hijk lmnop</tag> qrst uvwxyz";

// Call the function to extract the substring
$content = extractContentBetweenTags($str, "tag");

if (!empty($content)) {
    echo "Extracted content: " . $content . PHP_EOL;
} else {
    echo "No matching tags found." . PHP_EOL;
}


  
/*
run:
      
Extracted content: efg hijk lmnop

*/
 

 



answered Apr 2, 2025 by avibootz
...