У меня есть шаблон регулярного выражения, который пытается сопоставить строку, но он делает это неправильно, поэтому я собираюсь указать части шаблона регулярного выражения и что он делает в надежде получить это право на этот раз :Соответствие шаблону регулярного выражения
~ : the start of the regex pattern
, : trying to match the , at the start of the string
.* : 0 or more of any characters in between
=? : stop at the first match of the rest of the pattern
\. : a period
\" : a quote
/: a slash
> : arrow right
< : arrow left
~ : end of pattern
Код:
$content = ", not good in any manner or degree. See more.\"/><"
$regex = "~,.*=?\.\"/><~";
preg_match_all("/$regex/siU", $content, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
Ошибка:
Unknown modifier '/'
Unknown modifier '>'
Unknown modifier '<'
Но, насколько мне известно, эти [\^$. |? * +() {} Являются метасимволами регулярных выражений, которые необходимо экранировать. Во всяком случае, я избежал/и <, и ошибка исчезла, но на этот раз я получил пустой массив.
$regex = "~,.*=?\.\"\/\>\<~";
preg_match_all("/$regex/siU", $content, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
Результаты:
Array
(
[0] => Array
(
)
)
Может кто-нибудь сказать мне, что я делаю неправильно?
«** Соответствие шаблону регулярного выражения **« Регулярно правильно, что вы ошибаетесь. –
Вы должны использовать регулярное выражение для анализа HTML, правильно? Если да, это преступник. –
@PedroLobito Что ты говоришь? Я получаю пустой массив. Как это правильно? – frosty