Я пытаюсь удалить все между двумя символами, включая два символа, из строки с использованием regex в php. Я попытался использовать ответ на этой странице, так что теперь у меня есть строка в моем php-файле, которая выглядит так:
$message = preg_replace('\[[^\]]*]', '', $message);
Проблема в том, что я получаю эту ошибку:
Предупреждение: preg_replace () [function.preg-replace]: разделитель не должен быть буквенно-цифровым или обратным слэшем
Как я могу это исправить?
Регулярные выражения в PHP необходимо разграничить:
$message = preg_replace('/\[[^\]]*]/', '', $message);
Ознакомьтесь с этой документацией .
Также как побочная заметка вам не нужно скрывать закрытие ]
если это первый символ в классе символов:
$message = preg_replace('/\[[^]]*]/', '', $message);
(Является ли это более читаемым в этом случае спорным, но это хорошо знать.)
Это мое решение: пусть и левый, и правый маркеры – это кавычки. Этот reg expr разбивает строку запроса на три атома, которые будут перенастроены по желанию во входную строку. Надеюсь, поможет.
var _str = "replace 'something' between two markers" ; document.write( "INPUT : " + _str + "<br>" ); _str = _str.replace( /(\')(.*?)(\')/gi, "($1)*some string*($3)" ); document.write( "OUTPUT : " + _str + "<br>" );