0

I have the following regular expression:

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

Written in javascript.

How can I get it to work with PHP's preg_match_all? What are the differences as far as regular expressions go?

1 Answer 1

3

This should work:

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

When you use the JavaScript RegExp constructor with a string, all backslashes have to be escaped with another backslash. This is not the case with PHP.

And normally you would use / as the delimiter for the regex, but as in this case you have a lot of / in your search string it is wiser to use some other delimiter so you don't have to escape every slash with a backslash. In this case I used the pound sign as a delimiter.

Sign up to request clarification or add additional context in comments.

1 Comment

Commenting on an old answer, but do you know of any automated converters for Javascript Regex syntax to PHP regex syntax?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.