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. qtk - 15 Сентября, 2015 - 19:45:07 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1. <div class="leading-5">
  2. <article class="vol-post">
  3. <h2 class="vol-postheader">Текст Текст Текст Текст Текст Текст Текст Текст Текст Текст</h2>
  4. <div class="vol-postcontent clearfix">
  5. <div class="vol-article">
  6. <p style="text-align: justify;">
  7. <strong>
  8. <span style="font-size: 13pt; font-family: 'Times New Roman', serif;">
  9. <img src="/images/image67123683.jpg" alt="" width="250" height="200" style="margin: 5px; float: left;">Текст Текст Текст Текст .&nbsp;Текст Текст Текст Текст Текст Текст.</span>
  10. </strong>
  11. </p>
  12. <div class="jcomments-links">
  13. <a class="readmore-link" href="/207-klass.html" title="">Подробнее...</a>
  14. <a class="comments-link" href="/207-klass.html#addcomments" title="Добавить комментарий">Добавить комментарий</a>
  15. </div>
  16. </div>
  17. </div>
  18. </article>        
  19. </div>

нужно выбрать только русский текст между тегов <span></span>, тег <img> не всегда бывает внутри тегов <span></span>ю
За ранее спасибо
2. andrewkard - 15 Сентября, 2015 - 23:43:39 - перейти к сообщению
qtk пишет:
нужно выбрать только русский текст

Так, но русский текст прерывается .&nbsp;
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. /<span.*>(<img.*|)([А-Яа-я\s]*).*<\/span>/s
  3.  

Либо вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. /<span.*>(<img.*|)(.*).*<\/span>/s
  3.  
3. qtk - 16 Сентября, 2015 - 17:43:33 - перейти к сообщению
увы, но нет.
4. andrewkard - 16 Сентября, 2015 - 18:25:03 - перейти к сообщению
qtk
Что не так? С Вашим куском работает нормально:
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = '<div class="leading-5">
  3. <article class="vol-post">
  4. <h2 class="vol-postheader">Текст Текст Текст Текст Текст Текст Текст Текст Текст Текст</h2>
  5. <div class="vol-postcontent clearfix">
  6. <div class="vol-article">
  7. <p style="text-align: justify;">
  8. <strong>
  9. <span style="font-size: 13pt; font-family: "Times New Roman", serif;">
  10. <img src="/images/image67123683.jpg" alt="" width="250" height="200" style="margin: 5px; float: left;">Текст Текст Текст Текст .&nbsp;Текст Текст Текст Текст Текст Текст.</span>
  11. </strong>
  12. </p>
  13. <div class="jcomments-links">
  14. <a class="readmore-link" href="/207-klass.html" title="">Подробнее...</a>
  15. <a class="comments-link" href="/207-klass.html#addcomments" title="Добавить комментарий">Добавить комментарий</a>
  16. </div>
  17. </div>
  18. </div>
  19. </article>
  20. </div>';
  21.  
  22. preg_match('/<span.*>(<img.*|)(.*).*<\/span>/s',$str, $matches);
  23. print_r($matches[2]);
  24.  
5. DeepVarvar - 16 Сентября, 2015 - 18:28:01 - перейти к сообщению
Предварительно заменив все &nbsp; на пробел:

/>([а-яА-ЯёЁ\s]*)<\/span/u
(Добавление)
andrewkard пишет:
Что не так?

qtk пишет:
только русский текст между тегов <span></span>
6. qtk - 17 Сентября, 2015 - 22:10:57 - перейти к сообщению
Огромное спасибо всем за ответы))

 

Powered by ExBB FM 1.0 RC1