Хорошо, я проверил и посмотрел, но сегодня мой SearchFU не сильный. Я сталкиваюсь с ошибкой с обратными ссылками в некоторых Regex preg_replace('~$\s*<div>([^<]*?)</div>$\s*~me', '\1', $source);
Я мог бы реально использовать руку. Выражение находит <div>
теги и возвращает только содержимое, удаляющее тег и включающее переводы строк. то есть:PHP preg_replace escape ampersand в backreference regex
<td>
<div>some value</div>
</td>
становится
<td>some value</td>
Все отлично работает до тех пор <div> </div>
, который вызывает:
Parse error: syntax error, unexpected '&' in D:\wamp\www\processfile.php(18)
: regexp code on line 1 Call Stack: 0.0010 143600 1. {main}()
D:\wamp\www\processfile.php:0 0.0350 170328 2. preg_replace()
D:\wamp\www\processfile.php:18 Fatal error: preg_replace(): Failed evaluating
code: in D:\wamp\www\processfile.php on line 18 Call Stack: 0.0010 143600
1. {main}() D:\wamp\www\processfile.php:0 0.0350 170328 2. preg_replace()
D:\wamp\www\processfile.php:18
Если удалить \ 1 обратной ссылки, выражение будет счастливо стереть все содержимое в div, но, похоже, хочет разобрать его как новое выражение.
Есть ли способ обойти это, или я должен предварительно обработать & до того, как эта строка будет выполнена?
Bam! Спасибо. Я знал, что это окажется чем-то простым, я бы забыл. Я уже три дня наливаю эти документы. – Toaster