phptextreplacesanitizationparentheses

Remove parentheses and the content in between


How can I remove the text between a set of parentheses and the parentheses themselves in PHP?

Example: ABC (Test1)

I would like it to delete (Test1) and only leave ABC.


Solution

  • $string = "ABC (Test1)";
    echo preg_replace("/\([^)]+\)/","",$string); // 'ABC '
    

    preg_replace is a perl-based regular expression replace routine. What this script does is matches all occurrences of a opening parenthesis, followed by any number of characters not a closing parenthesis, and again followed by a closing parenthesis, and then deletes them:

    Regular expression breakdown:

    /  - opening delimiter (necessary for regular expressions, can be any character that doesn't appear in the regular expression
    \( - Match an opening parenthesis
    [^)]+ - Match 1 or more character that is not a closing parenthesis
    \) - Match a closing parenthesis
    /  - Closing delimiter