Использование регулярного выражения php для получения значения в файле javascript

#php #regex

#php #регулярное выражение

Вопрос:

Я попробовал следующий код:

 preg_match_all("/'<span> ' 
'(.*?) Reviews/s", $data, $matches);
  

Я пытаюсь получить количество отзывов, вот пример $data:

 '<span> ' 
'319 Reviews </span> ' 
'</div> ' 
  

Мой скрипт возвращает $matches array empty — есть идеи?

Ответ №1:

Вы можете попробовать этот шаблон:

 /'<span> ' s*'K[0-9] (?= Reviews)/
  

s является символьным классом для всех символов пробелов (включая новые строки)

K означает не использовать и удалить все слева от результата сопоставления

(?=...) это предварительный просмотр, который проверяет, что следует, не включая это в результат сопоставления.

Комментарии:

1. Что насчет новой строки?

2. @zerkms: перевод строки сопоставляется с s* и является необязательным, поскольку здесь это не важный элемент синтаксиса javascript. (оно находится за пределами строки)

Ответ №2:

Вы могли бы использовать приведенное ниже регулярное выражение, в котором используется модификатор Dotall( s ),

 /'<span> ' .'Kd (?= Reviews)/s
  

ДЕМОНСТРАЦИЯ

или

вы могли бы использовать lookbehind с s модификатором,

 /(?<='<span> ' .')d (?= Reviews)/s
  

ДЕМОНСТРАЦИЯ