m0pfin
@m0pfin

Как спарсить строку которая меняется?

Есть вот такая регулярка:

// тут class="txt-color-black"
     preg_match_all('#<span style="font-size:22px" class="txt-color-black">(.+?)</span>#is', $str, $arr);
     
     // тут class="txt-color-red"
     preg_match_all('#<span style="font-size:22px" class="txt-color-red">(.+?)</span>#is', $str, $arr);


Меняется атрибут class="txt-color-red" на red или black и когда он меняется то не парсится строка, как сделать чтобы парсил и с тем и ли с другим атрибутом в зависимости от его значения
  • Вопрос задан
  • 99 просмотров
Решения вопроса 3
@xtress
Web-dev
Для начала почитать мануалы по регуляркам. Как строятся группы, и как делать "вариативные" группы.
Затем переходить к практике. По смыслу задачи:
https://regex101.com/r/ffEJbB/2
Ответ написан
Комментировать
lidacriss
@lidacriss
wtf
банально
class="txt-color-[a-z]+"
https://regex101.com/r/8wtxCc/1

UPD
да и вообще, если собрались "парсить" регулярками, то она в целом не очень верная
хотя бы так писали:
preg_match_all('#<span[^<>]*?class="txt-color-[a-z]+"[^<>]*?>(.+?)</span>#is', $str, $arr);
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
preg_match_all('#<span style="font-size:22px" class="[a-z-]+">(.+?)</span>#is', $str, $arr);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы