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. Faraon-san - 22 Сентября, 2017 - 17:58:38 - перейти к сообщению
Всем привет.
Обычно все гугл разруливал, а тут чет затык прям.
Есть строка:

В это строке нужно найти и заменить все символы "M" кроме экранированной обратным слэшом.
Видимо пятница вечер, но обычно проблем не было с регулярками ни когда, а тут....
2. Мелкий - 22 Сентября, 2017 - 18:03:32 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. echo preg_replace('~(?<!\\\\)M~', '!', 'M Y M \M\a\r\c\h');

negative Lookbehind с заборчиком из-за того что слеш спецсимвол как для php так и для pcre
3. Faraon-san - 25 Сентября, 2017 - 18:09:42 - перейти к сообщению
Вот спасибо, так спасибо. Нужно будет почитать про опережающие и ретроспективные проверки.
4. Строитель - 25 Сентября, 2017 - 18:31:28 - перейти к сообщению
Faraon-san скачайте​ книгу Джеффри Фридла​ "Регулярные выражения" 3-е издание, и будете регулярки щёлкать, как семечки Закатив глазки

 

Powered by ExBB FM 1.0 RC1