конвертировать регулярные выражения javascript в php - PullRequest
0 голосов
/ 14 января 2010

У меня есть следующее регулярное выражение:

RegExp("http://www.amazon.com/([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})");

Написано в javascript.

Как мне заставить его работать с PHP preg_match_all? Чем отличаются регулярные выражения?

1 Ответ

3 голосов
/ 14 января 2010

Это должно работать:

preg_match_all('#http://www.amazon.com/([\w-]+/)?(dp|gp/product)/(\w+/)?(\w{10})#', $data, $matches);

Когда вы используете конструктор JavaScript RegExp со строкой, все обратные косые черты должны быть экранированы другой обратной косой чертой. Это не так с PHP.

И обычно вы бы использовали / в качестве разделителя для регулярного выражения, но так как в этом случае у вас много / в строке поиска, разумнее использовать какой-либо другой разделитель, поэтому вам не нужно избежать каждого слэша с помощью обратного слэша. В этом случае я использовал знак фунта в качестве разделителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...