Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extracting all values between curly braces regex php

I have content in this form

$content ="<p>This is a sample text where {123456} and {7894560} ['These are samples']{145789}</p>";

I need all the values between curly braces in an array like the one shown below:

array("0"=>"123456","1"=>"7894560","2"=>"145789")

I tried with this code:

<?php
preg_match_all("/\{.*}\/s", $content, $matches);
?>

But I am getting in here values from first curly brace to the last found in the content. What can be done to get the array in above format? I knew that the pattern I have used is wrong. What shall be given to get desired output shown above?

like image 948
Ganesh Babu Avatar asked Dec 30 '13 11:12

Ganesh Babu


1 Answers

Do like this...

<?php
$content ="<p>This is a sample text where {123456} and {7894560} ['These are samples']{145789}</p>";
preg_match_all('/{(.*?)}/', $content, $matches);
print_r(array_map('intval',$matches[1]));

OUTPUT :

Array
(
    [0] => 123456
    [1] => 7894560
    [2] => 145789
)
like image 99
Shankar Narayana Damodaran Avatar answered Oct 20 '22 18:10

Shankar Narayana Damodaran