我想用正则表达式来搜索一个字符串,替换几个值并构建一个URL。我从来没有用过正则表达式(从零开始),所以有点卡住了。PHP Regex preg_replace括号之间的多个值
该字符串包含在[方括号内]作为标识符。我已经尝试了多种方法 - 我不明白如何构造正则表达式或preg_replace方法以便能够执行多个替换,理想情况下没有大量重复的正则表达式行,但是这是我尝试的方向:
$string= '[mycode="gallery" type="single" id="1" data="only"]'; //INPUT
$string = preg_replace('/\mycode="(.*)"\]/', '$1/mycode"', $string);
$string = preg_replace('/\type="(.*)"\]/', 'mycode_$1.php', $string);
$string = preg_replace('/\id="(.*)"\]/', '?id=$1', $string);
$string = preg_replace('/\data="(.*)"\]/', '&data=$1', $string);
最终输出:
画廊/ _mycode_single.php ID = 1个&数据=只(与删除[]太)
我知道,这是行不通目前,因为我不?知道编译多行输出的方法;任何援助将不胜感激。谢谢!
对不起,是 - ]我认为我之前的努力遗留下了一个错字。我之前没有使用preg_replace_callback - 你能详细说明吗?我假设你的意思是在做其他事情之前先使用它来获取[]括号中的内容? – WWD
使用下面提供的答案工作 - 再次感谢 – WWD