Предупреждение: preg_match () : Неизвестный модификатор '('

У меня есть эти теги HTML:

<div class="title">Copy me if you can</div> 

поэтому я хочу использовать preg_match, чтобы взять «Скопировать меня, если можно». Я использую этот шаблон preg:

 $preg = "<div class=\"title\">(.+?)</div>"; 

Поэтому я написал этот код

 $match = preg_match($preg,$content); 

Вывод браузера:

 Warning: preg_match() [function.preg-match]: Unknown modifier '(' 

Какие

Вы забыли разделитель

 $preg = '~<div class="title">(.+?)</div>~'; 

Первая буква в шаблоне всегда определяет используемый разделитель. В вашем случае это < , поэтому конечный разделитель равен > . Все после этого используется как специальный модификатор, который изменяет специфическое поведение. ( не является допустимым модификатором. То, что сообщение об ошибке хотело рассказать вам 🙂

Попробуйте: $preg = '/<div class="title">([^<]+)</div>/';

Лично, когда задействован HTML, я должен уклоняться от разделителя defacto / и использовать # вместо этого, поэтому вам не нужно забывать избегать любых закрывающих HTML-тегов.

 $preg = '#<div class="title">([^<]+)</div>#'; 

Вам нужно добавить delimites к вашему регулярному выражению. Попробуй это:

 $preg = "/<div class=\"title\">(.+?)<\/div>/"; 

/ являются разделителями, которые отмечают начало и остановку вашего регулярного выражения. Причина разделителей заключается в том, что вы можете добавлять флаги в свое регулярное выражение. Эти флаги вставляются после вашего регулярного выражения. Пример:

 $preg = "/<div class=\"title\">(.+?)<\/div>/i"; 

Я добавил i в качестве модификатора, отмечая поиск в регулярном выражении как нечувствительный к регистру.

У меня такая же проблема, и я задаюсь вопросом, могу ли я сделать то же самое, например: Предупреждение: preg_match () [function.preg-match]: Неизвестный модификатор 't' in / home / 08 / public / www / wp-content / plugins /woocommerce-gateway-dibs-form/gateway-dibs.php в строке 707

Это код: if (preg_match ($ _ SERVER ["REQUEST_URI"], 'woocommerce / dibscancel')! == false) {

  header("HTTP/1.1 200 Ok"); $callback = new WC_Gateway_Dibs; $callback->cancel_order(stripslashes_deep($_REQUEST)); return; }