@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"
  • Вопрос задан
  • 348 просмотров
Решения вопроса 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
Регулярки и парсинг хтмл. Никогда так не делай. Надо юзать спец. библиотеки, например тут можно что-нибудь выбрать. Вообще регулярки лучше нигде и никогда не юзать. Говорят используя регулярки ты получаешь сразу две проблемы из одной.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 мар. 2024, в 11:54
3000 руб./за проект
19 мар. 2024, в 11:52
3000 руб./за проект
19 мар. 2024, в 11:49
10000 руб./за проект