Reputation: 687
I got the following string:
<a href="/web/20120412083942/http://test.com/contact">Contact Us</a> | <a href="/web/20120412083942/https://test.com/privacy-policy">Privacy Policy</a> <br /><br />
<a href="/web/20120412083942/http://www.cassandracastanedaphoto.com/index2.php#/home/">Photography by Cassandra Castenada</a></span><!-- Start Shareaholic TopSharingBar Automatic --><!-- End Shareaholic TopSharingBar Automatic --><script src="/web/20120412083942js_/http://www.test.com/wp-content/plugins/tweetmeme/button.js" type="text/javascript"></script>
<!-- tracker added by Ultimate Google Analytics plugin v1.6.0: /web/20120412083942/http://www.oratransplant.nl/uga -->
I wanna match:
/web/20120412083942/http://test.com
/web/20120412083942/https://test.com
/web/20120412083942js_/http://www.test.com
Basically any url that has the web/[digit][potential string]/http://test.com
Here's my regex so far:
((http(s)?:\/\/)?web.archive.org)?\/web\/\d+.*?\/http(s)?:\/\/(www\.)?test\.com
The issue is, it matches the entire section:
/web/20120412083942/http://www.cassandracastanedaphoto.com/index2.php#/home/">Photography by Cassandra Castenadahttp://test.com
How can I make it so it stops looking after the domain didn't start with test.com?
Upvotes: 0
Views: 271
Reputation: 15616
I succeeded with this regexp pattern:
Pattern: /web/[^/]+/http[s]{0,1}://(|www\.)test\.com/?[._a-zA-Z-0-9]+
Options: ^ and $ match at line breaks
Match the characters “/web/” literally «/web/»
Match any character that is NOT a “/” «[^/]+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Match the characters “/http” literally «/http»
Match the character “s” «[s]{0,1}»
Between zero and one times, as many times as possible, giving back as needed (greedy) «{0,1}»
Match the characters “://” literally «://»
Match the regular expression below and capture its match into backreference number 1 «(|www\.)»
Match either the regular expression below (attempting the next alternative only if this one fails) «»
Empty alternative effectively makes the group optional (following alternatives will be tried if the regex backtracks into the group) «|»
Or match regular expression number 2 below (the entire group fails if this one fails to match) «www\.»
Match the characters “www” literally «www»
Match the character “.” literally «\.»
Match the characters “test” literally «test»
Match the character “.” literally «\.»
Match the characters “com” literally «com»
Match the character “/” literally «/?»
Between zero and one times, as many times as possible, giving back as needed (greedy) «?»
Match a single character present in the list below «[._a-zA-Z-0-9]+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
One of the characters “._” «._»
A character in the range between “a” and “z” «a-z»
A character in the range between “A” and “Z” «A-Z»
The character “-” «-»
A character in the range between “0” and “9” «0-9»
Upvotes: 1