我需要一个正则表达式,可以从某个字符串中找到括号并从中提取id的值。 E.g:
$string = "Hey how are you, this is [ads id=432] going to be fun!";
我需要ads
之类的名称,ID为432
。
如何用其他值替换这些括号,例如$ads = "ads here";
?
答案 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+?)(?=\])
名称和值用于正则表达式组