我想用正則表達式來搜索一個字符串,替換幾個值並構建一個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