Search code examples
phpstringpreg-matchpreg-match-alldouble-quotes

How to extract a string from double quotes?


I have a string:

This is a text, "Your Balance left $0.10", End 0

How can I extract the string in between the double quotes and have only the text (without the double quotes):

Your Balance left $0.10

I have tried preg_match_all() but with no luck.


Solution

  • As long as the format stays the same you can do this using a regular expression. "([^"]+)" will match the pattern

    • Double-quote
    • At least one non-double-quote
    • Double-quote

    The brackets around the [^"]+ means that that portion will be returned as a separate group.

    <?php
    
    $str  = 'This is a text, "Your Balance left $0.10", End 0';
    
    //forward slashes are the start and end delimeters
    //third parameter is the array we want to fill with matches
    if (preg_match('/"([^"]+)"/', $str, $m)) {
        print $m[1];   
    } else {
       //preg_match returns the number of matches found, 
       //so if here didn't match pattern
    }
    
    //output: Your Balance left $0.10