У меня есть некоторый текст, я разбор, как это:PHP и preg_replace
текст. Некоторые тексты. Некоторые тексты. Некоторые текст. Некоторые тексты. Некоторые тексты. Некоторые тексты. Некоторые текст. Некоторые тексты. Некоторые тексты. Некоторые текст. Некоторые тексты. Некоторые тексты. Некоторые тексты. Некоторые текст. Некоторые тексты. Некоторые тексты. [attachment = 0] Winter.jpg [/ attachment] Некоторые текст. Некоторые тексты. Некоторые тексты. Некоторые тексты. Некоторые текст. Некоторые тексты. Некоторые тексты. Некоторые текст. Некоторые тексты. Некоторые тексты. Некоторые тексты. Некоторые текст.
Я хочу, чтобы соответствовать и удалить любой экземпляр текста, как это из строки:
[attachment=0]Winter.jpg[/attachment]
где Winter.jpg может быть любой текст.
Однако, я получаю некоторые уведомления PHP. Я использовал regexpal.com построить это, который там работает, но использует функцию Javascript Regex:
\[attachment=.*?].*\[/attachment]
Когда я запускаю этот код:
$pm_row['message_text'] = preg_replace('\[attachment=.*?\].*\[/attachment\]', '', $pm_row['message_text']);
PHP жалуется с уведомлением:
[phpBB Debug] PHP Notice: in file /mail_digests.php on line 841: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash
Таким образом, на аналогичной строке кода я разграничиваю шаблон с помощью «/»:
$post_row['post_text'] = preg_replace('/\[attachment=.*?].*\[/attachment]/', '', $post_row['post_text']);
Но это порождает следующее:
[phpBB Debug] PHP Notice: in file /mail_digests.php on line 957: preg_replace() [function.preg-replace]: Unknown modifier 'a'
Любые идеи о том, как это исправить?
+1 Да, это проблема.OP также должен будет сделать '. *' Ungreedy ('. *?'), Если в анализируемом тексте может быть больше одного вложения. – lonesomeday
Спасибо. Регулярные выражения - это вызов! – Mark
ОК, видимо, мое выражение нуждается в некоторой доработке. Как у меня есть: \t \t \t $ pm_row ['message_text'] = preg_replace ('/ \ [attachment =. *?]. *? \ [\/Attachment] /', '', $ pm_row ['message_text']) ; , но это не соответствует моей строке winter.jpg – Mark