将javascript正则表达式转换为php

时间:2010-01-14 07:56:02

标签: php javascript regex

我有以下正则表达式:

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

用javascript编写。

如何让它与PHP的preg_match_all一起使用?正则表达式有什么区别?

1 个答案:

答案 0 :(得分:3)

这应该有效:

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

当您使用带有字符串的JavaScript RegExp构造函数时,所有反斜杠都必须使用另一个反斜杠进行转义。 PHP的情况并非如此。

通常你会使用/作为正则表达式的分隔符,但是在这种情况下你的搜索字符串中有很多/,因此使用其他分隔符更明智不得不用反斜杠逃避每一条斜线。在这种情况下,我使用英镑符号作为分隔符。