将javascript正则表达式转换为php

将javascript正则表达式转换为php,php,javascript,regex,Php,Javascript,Regex,我有以下正则表达式: RegExp("http://www.amazon.com/([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})"); 用javascript编写 如何让它与PHP的preg\u match\u all配合使用?正则表达式的区别是什么?这应该可以: preg_match_all('#http://www.amazon.com/([\w-]+/)?(dp|gp/product)/(\w+/)?(\w{10})#', $data, $mat

我有以下正则表达式:

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

如何让它与PHP的
preg\u match\u all
配合使用?正则表达式的区别是什么?

这应该可以:

preg_match_all('#http://www.amazon.com/([\w-]+/)?(dp|gp/product)/(\w+/)?(\w{10})#', $data, $matches);
当您将JavaScript
RegExp
构造函数与字符串一起使用时,所有反斜杠都必须用另一个反斜杠转义。PHP的情况并非如此

通常,您会使用
/
作为正则表达式的分隔符,但在这种情况下,您的搜索字符串中有很多
/
,因此更明智的做法是使用其他分隔符,这样您就不必用反斜杠转义每个斜杠。在本例中,我使用英镑符号作为分隔符。

这应该可以:

preg_match_all('#http://www.amazon.com/([\w-]+/)?(dp|gp/product)/(\w+/)?(\w{10})#', $data, $matches);
当您将JavaScript
RegExp
构造函数与字符串一起使用时,所有反斜杠都必须用另一个反斜杠转义。PHP的情况并非如此


通常,您会使用
/
作为正则表达式的分隔符,但在这种情况下,您的搜索字符串中有很多
/
,因此更明智的做法是使用其他分隔符,这样您就不必用反斜杠转义每个斜杠。在本例中,我使用磅符号作为分隔符。

对旧答案进行注释,但您知道有任何Javascript正则表达式语法到PHP正则表达式语法的自动转换器吗?对旧答案进行注释,但您知道有任何Javascript正则表达式语法到PHP正则表达式语法的自动转换器吗?