我有以下正则表达式:
RegExp("http://www.amazon.com/([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})");
用javascript编写。
如何让它与PHP的preg_match_all
一起使用?正则表达式有什么区别?
答案 0 :(得分:3)
这应该有效:
preg_match_all('#http://www.amazon.com/([\w-]+/)?(dp|gp/product)/(\w+/)?(\w{10})#', $data, $matches);
当您使用带有字符串的JavaScript RegExp
构造函数时,所有反斜杠都必须使用另一个反斜杠进行转义。 PHP的情况并非如此。
通常你会使用/
作为正则表达式的分隔符,但是在这种情况下你的搜索字符串中有很多/
,因此使用其他分隔符更明智不得不用反斜杠逃避每一条斜线。在这种情况下,我使用英镑符号作为分隔符。