regex php: "kurtulmak [LINK1] kurtulun [Link2] olsun ...

0 Cevap php

Aşağıdaki çıktıları elde etmek için tek bir satır () ile preg_replace nasıl?

$string1="get rid1 [link1] get rid2 [link2] ..."; // any number of links
echo "[<a href=link1>link1</a>][<a href=link2>link2</a>]";
$string2="get rid any text any text get rid"; // = no links: is a possibility
echo "";

Ben örnek $ dize1 için değil, yukarıdaki $ string2 için çalışır aşağıdaki çalıştı:

$regex="/".
"[^\[\]]*". // the non-bracketed text before: -> eliminate
"\[(.*?)\]". // the bracketed text: [.]: -> convert into links 
"[^\[\]]*"; // get rid of non-bracketed text after: -> eliminate
"/";
echo preg_replace($regex,'<a href=jp.php?jp=\1>[\1]</a>',$string1);

Ben olmayan yakalama grupları (?:...) çalışabilir düşünüyorum, ama ben bunu anlamaya olamaz ...

0 Cevap