正则表达式从字符串中找到名称和id,如[thename id = 432]

时间:2012-07-16 08:30:22

标签: php regex

我需要一个正则表达式,可以从某个字符串中找到括号并从中提取id的值。 E.g:

$string = "Hey how are you, this is [ads id=432] going to be fun!";

我需要ads之类的名称,ID为432

如何用其他值替换这些括号,例如$ads = "ads here";

2 个答案:

答案 0 :(得分:1)

$regexp = "#\[(?<name>[^\]]+) id=(?<id>[0-9]+)\]#";

例如

<?php
   $regexp = "#\[(?<name>[^\]]+) id=(?<id>[0-9]+)\]#";
   $string = "Hey how are you, this is [ads id=432] going to be fun!";
   preg_match($regexp, $string, $match);
   print_r($match);
?>

Array
(
    [0] => [ads id=432]
    [name] => ads
    [1] => ads
    [id] => 432
    [2] => 432
)

答案 1 :(得分:0)

使用此正则表达式(?<=\[ads\s+id=)(\d+?)(?=\]) 如果您需要广告,请将此`(?<=\[)(\w+)\s+id=(\d+?)(?=\])名称和值用于正则表达式组