Preg_replace не может заменить то, что мне нужно

#php #preg-replace

#php #preg-replace

Вопрос:

Мне нужна помощь с preg_replace. На моем веб-сайте мне нужно удалить некоторые вещи, которые мне не нужны.
Вот пример:

  
  

Хорошо, все, что мне нужно из этой строки: текст внутри caption="THIS TEXT" ,
все остальное, что мне нужно удалить, я использовал Google и попробовал несколько примеров, но ничего.
Возможно, мне нужно использовать другую функцию, но из того, что я прочитал в Интернете, это должно заменить.

Пожалуйста, помогите мне, это очень важно.
Спасибо.

Редактировать:

В коде есть некоторые другие вещи, которые я забыл.

 
<a href="http://localhost/111baneease1.jpg">
<img class="size-full wp-image-100951" title="zjarr_banese1" src="http://localhost/111baneease1.jpg" alt="eeeeeeeeeeeeeeeee" width="448" height="308" />
</a>
[/caption]
  

Поэтому мне нужно получить текст ЗАГОЛОВКА и удалить все в
[идентификатор заголовка =»attachment_100951″ align=»alignleft» width =»448″ заголовок = «eaaaaaaaaaaaaaaaaaa»]

но не

 <a href="http://localhost/111baneease1.jpg">
<img class="size-full wp-image-100951" title="zjarr_banese1" src="http://localhost/111baneease1.jpg" alt="eeeeeeeeeeeeeeeee" width="448" height="308" />
</a>
  

также хочу удалить [/ caption]

тоже.

Ответ №1:

Это регулярное выражение :

 $result = preg_replace('/[captions .*?captions*=(["'])(.*?)1.*?/', '$2', $subject);
  

выведет :

 THIS IS WHAT I NEED
  

при применении к :

  
  

Обновленный ответ на основе вашего обновленного вопроса :

 $result = preg_replace('%[captions .*?captions*=(["'])(.*?)1s*](.*?)[/caption]%s', '$2n$3', $subject);
  

Приведенное выше регулярное выражение применяется к :

 
<a href="http://localhost/111baneease1.jpg">
<img class="size-full wp-image-100951" title="zjarr_banese1" src="http://localhost/111baneease1.jpg" alt="eeeeeeeeeeeeeeeee" width="448" height="308" />
</a>
[/caption]
  

Выведет :

     eaaaaaaaaaaaaaaaaaa

<a href="http://localhost/111baneease1.jpg">
<img class="size-full wp-image-100951" title="zjarr_banese1" src="http://localhost/111baneease1.jpg" alt="eeeeeeeeeeeeeeeee" width="448" height="308" />
</a>
  

Я не уверен, что это именно то, что вы хотели. Конечно, вы можете использовать регулярное выражение для сопоставления и делать все, что хотите, с группами $ 2 и $ 3…

Комментарии:

1. я бы изменил финал .* на .*? , чтобы он мог соответствовать нескольким экземплярам в более крупном документе