I use php preg-replace-callback function to add link to part of string that is in an array :
<?php
$preg_quote_titles =  array('string 1 ? string 2 ?');
$content="string 1 ? string 2 ? string 3 ? ";
    $content = preg_replace_callback( '/(' . implode( '|', $preg_quote_titles ) . ')/i', function( $matches ) use ( $preg_quote_titles ) {
            return '<a href="#" class="post-link">' . $matches[0] . ' </a>';
    }, $content );
    echo $content;
    ?>
Code above doesn't work. Result is :
string 1 ? string 2 ? string 3 ? 
With no link.
If I remove "?" character :
<?php
$preg_quote_titles =  array('string 1');
$content="string 1 ? string 2 ? string 3 ? ";
    $content = preg_replace_callback( '/(' . implode( '|', $preg_quote_titles ) . ')/i', function( $matches ) use ( $preg_quote_titles ) {
            return '<a href="#" class="post-link">' . $matches[0] . ' </a>';
    }, $content );
    echo $content;
    ?>
That works (links is added to "string 1")
How to include all character like parenthesis, question mark, etc ?
