Задать вопрос
@dura228

Что не так с регулярным выражением для поиска тега h1?

$text="fhdsklf sdoijf ds <h1>jfidsfj</h1> jklsfdjflks";
$pattern ="!<h1>.+</h1>!";
preg_match($text, $pattern, $matches);
print_r($matches);

Код выдает ошибку: "Warning: preg_match(): Delimiter must not be alphanumeric or backslash"
  • Вопрос задан
  • 394 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
@rodion11
php dev
Нужно местами поменять $pattern и $text
Также советую использовать .+? вместо .+, т.к. в противном случае регулярка будет искать последнее вхождение в строке.
$text="fhdsklf sdoijf ds <h1>jfidsfj</h1> jklsfdjflks";
$pattern ="!<h1>.+?</h1>!";
preg_match($pattern, $text, $matches);
print_r($matches);
Ответ написан
Комментировать
lidacriss
@lidacriss
wtf
preg_match($text, $pattern, $matches);
в preg_match
сначала идет паттерн, потом текст, потом матч

preg_match
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DarkByte2015
Регулярки и парсинг хтмл. Никогда так не делай. Надо юзать спец. библиотеки, например тут можно что-нибудь выбрать. Вообще регулярки лучше нигде и никогда не юзать. Говорят используя регулярки ты получаешь сразу две проблемы из одной.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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