[英]Regular Expression and preg_replace PHP
我需要用空字符串“”替換簡碼中的字符串。 這是代碼:
$pattern = "#\[(.*)( rep=['\"]{1}1['\"]{1})(.*)\]#i";
$replacement = '[$1$3]';
//Test cases:
$values = [
'This is a [s1 val="1"] test',
'This is a [s1 val="1"] test rep="1"',
'This is a [s1 val="1" rep="1"] test',
'This is a [s1 de="2" rep="1" be="2"] test',
'This is a [rep="1" de="2" ] test',
'This is a [s2 val="1" rep="1" de="2"] test ... This is a [s3 val="1" rep="1" de="2" ] test',
];
foreach($values as $value)
{
echo preg_replace($pattern, $replacement, $value) . "\n";
}
前五個案例按預期工作。 不幸的是,里面有兩個rep =“ 1”的第六種情況無法按預期工作,因為我希望刪除兩個短代碼中的rep =“ 1”。 這可能在正則表達式上。
注意:rep =“ 1”必須在短代碼內([和]內)才能被替換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.