非常に基本的な質問ですが、次の正規表現でパイプを使用するポイントがわかりません。
$menu=preg_replace("|<li><a href=\"".$base."\">(.*)</a></li>|U", "<li class=\"current\">$1</li>", $menu);
もちろん、それらが複数の (OR) マッチングを意味することは知っています。
ばかげた質問だと思いますが、お役に立てれば幸いです。
非常に基本的な質問ですが、次の正規表現でパイプを使用するポイントがわかりません。
$menu=preg_replace("|<li><a href=\"".$base."\">(.*)</a></li>|U", "<li class=\"current\">$1</li>", $menu);
もちろん、それらが複数の (OR) マッチングを意味することは知っています。
ばかげた質問だと思いますが、お役に立てれば幸いです。
パイプは修飾子から正規表現を分離する区切り文字です (通常、区切り文字として / が表示されますが、任意の 1 文字にすることができます) http://php.net/manual/en/regexp.reference.delimiters.php
http://php.net/manual/en/reference.pcre.pattern.modifiers.php PCRE_UNGREEDY である U 修飾子を探します。
Kris が説明しているように、パイプは区切り記号として使用され、U 修飾子は量指定子の動作を欲張りと怠惰の間で切り替えるために使用されます。
この行は、次のように記述したほうがよいことに注意してください。
$menu = preg_replace('~<li><a href="' . $base . '">(.*?)</a></li>~',
'<li class="current">$1</li>', $menu);