How to extract text in parentheses with regex in php

5

I have the text:

Regular expressions (often abbreviated to "regex") are a declarative language used for correspondence.

How do I get the content included between parentheses?

I tried:

$texto = "As expressões regulares (muitas vezes abreviado para "regex") são uma linguagem declarativa utilizada para correspondência." ;
preg_match("/\(*\)/", $texto, $testando);
var_dump($testando) ;

The output is:

array (size=1)
   0 => string ')' (length=1)
    
asked by anonymous 31.10.2016 / 17:42

1 answer

6

You have not specified which character is in your regex, in this case the point . . In other words, you will get a parenthesis followed by anything .* followed by a parent relationship.

$texto = "As expressões regulares (muitas vezes abreviado para 'regex') são uma linguagem declarativa utilizada para correspondência." ;
preg_match("/\(.*\)/", $texto, $testando);
var_dump($testando) ;

Or to get the content inside the two parentheses, use the preg_match_all() function, change the regex to combine letters and numbers (% with_of_%), characters like space, tab and others (% with_of_%) and single-quotes \w )

$texto = "As expressões regulares (muitas vezes abreviado para 'regex') são uma linguagem (declarativa utilizada) para correspondência";
preg_match_all("#\([\w\s']+\)#i", $texto, $testando);
var_dump($testando) ;
    
31.10.2016 / 17:54