Задать вопрос
jasonOk
@jasonOk
Легче болтать, чем код писать

Как составить правильно?

Условие:
В тексте могут идти подряд 2 блока <div> (в каждом из них может быть любой текст),
но главное, чтобы один шёл следом за другим.
<div class="first">First</div><div class="second">Second</div>

Должен соблюдаться порядок (первый блок, очевидно, будет с классом "first") и если будет только один блок <div class="first">First</div>, то он вырезается, точно также если будет только див <div class="second">Second</div> он вырезается.
Каким регулярным выражением проверить, два блока, или нет?
  • Вопрос задан
  • 233 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@evgeniy_trebin
Ruby on Rails developer
/<div\s+class="first"\s*>.*<\s*\/div>\s*<div\s+class="second"\s*>.*<\s*\/div>/


пример на Ruby
>> regex = /<div\s+class="first"\s*>.*<\s*\/div>\s*<div\s+class="second"\s*>.*<\s*\/div>/

>> s = %{<div class="first">First</div><div class="second">Second</div>}
>> regex =~ s
=> 0
т.е. вхождение с 0 символа

>> s = %{<div class="second">Second</div>}
=> "<div class=\"second\">Second</div>"
>> regex =~ s
=> nil
т.е. вхождения нет

>> s = %{<div class="first">First</div>}
=> "<div class=\"first\">First</div>"
>> regex =~ s
=> nil
т.е. вхождения нет
Ответ написан
Комментировать
iam_not_a_robot
@iam_not_a_robot
Проверьте так если перед ним другого DIVа не бывает:
/<\/div>\n{0,}<div\sclass=\"second\">/ism
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽