-1

У меня есть следующее регулярное выражение в PERL, который мне нужно преобразовать в PHP

if($line =~ m/[<]div class="row.* id="(vm_[0-9]{8,9})"[>]/i){ }

В настоящее время у меня есть следующее в PHP, чтобы соответствовать этому, но я не получаю те же результаты:

preg_grep('/[<]div class="row(.*) id="(vm_[0-9]{8,9})"[>]/', $lines);

Может кто-нибудь сказать мне, если то, что у меня есть, то же самое или я ошибаюсь?

2 ответа2

0

Образец кода:

if (preg_match('/[<]div class="row(.*) id="(vm_[0-9]{8,9})"[>]/i', $lines)) {

  echo "A match was found.";

}
0

preg_grep возвращает массив, тогда как если вы используете preg_match, вы получаете логическое значение. Так что если вы используете:

if($line =~ m/[<]div class="row.* id="(vm_[0-9]{8,9})"[>]/i){ }

Это было бы эквивалентно для:

if(preg_match('/[<]div class="row(.*) id="(vm_[0-9]{8,9})"[>]/i', $line)) { };

Хотя вы можете немного упростить регулярное выражение:

if(preg_match('/<div class="row(.*) id="(vm_[0-9]{8,9})">/i', $line)) { };

Если вы хотите посмотреть матчи, вы можете сделать:

if(preg_match('/<div class="row(.*) id="(vm_[0-9]{8,9})">/i', $line, $match)) {
    print_r($match);
};

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .