В качестве альтернативы вы можете использовать "
вместо '
, поэтому вам не нужно избегать '
, найденного в шаблоне:
preg_match("/var ProductID ='(.*?)';/", $str, $matches);
Также шаблон, который вы ищете var ProductID ='(.*?)';
не соответствует вашей входной строке, потому что:
- после
=
ProductID
не соответствует ProductId
Чтобы исправить 1, вы можете дать пробел после =
. Если вы не знаете количество пробелов, вы можете использовать \s*
для произвольного пробела.
Чтобы исправить 2, вы можете сделать регистр нечувствительным, используя модификатор i
.
preg_match("/var ProductID\s*=\s*'(.*?)';/i", $str, $matches);
^^ ^^ ^