Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: замена ТОЛЬКО если нет предшествующего символа...
Форумы портала PHP.SU » PHP » Регулярные выражения » замена ТОЛЬКО если нет предшествующего символа...

Страниц (1): [1]
 

1. Barakuda - 07 Апреля, 2014 - 16:34:07 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. [b]жирный текст[/b] - должно работать
  2. ~[b]жирный текст~[/b] - работать НЕ должно (должно вывести: [b]жирный текст[/b])


Суть я думаю понятна,
меняю так:
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('/^[^~]\[b\]/','<strong>',$text);
  2. $text = preg_replace('/^[^~]\[\/b\]/','</strong>',$text);

в этой части патерна - ^[^~], проблема. Нужно чтоб замена произошла ТОЛЬКО если НЕТ перед тегом тильды.
2. IllusionMH - 07 Апреля, 2014 - 16:50:16 - перейти к сообщению
Barakuda, посмотрите в сторону lookbehind
3. Barakuda - 07 Апреля, 2014 - 17:04:03 - перейти к сообщению
IllusionMH пишет:
Barakuda, посмотрите в сторону lookbehind

\спасибо, разобрался... Стыдно что сам не дошел до этого.

 

Powered by ExBB FM 1.0 RC1