From: "Jesús Gabriel y Galán" Date: 2008-09-08T00:18:21+09:00 Subject: Re: regular expression match and exclude On Sun, Sep 7, 2008 at 3:09 PM, Azalar --- wrote: > I am parsing a web page full of image links that also contain links to > the thumbnails for those images. > > Here is my test data.. > > galleries/image1.jpg > galleries/image1thumb.jpg > galleries/image2.jpg > galleries/image2thumb.jpg > galleries/image3.jpg > galleries/image3thumb.jpg > > If i use this expression.. > /galleries.*(?=thumb).*jpg/ > > The results are just those lines containing the word thumb. > > What I want to do is inverse this though and return only return that > DONT contain the word thumb. If you have all the links in an array, I would do the opposite: match the ones that contain thumb, rejecting those from the array irb(main):001:0> links = %w{galleries/image1.jpg galleries/image1thumb.jpg galleries/image2.jpg galleries/image2thumb.jpg galleries/image3.jpg galleries/image3thumb.jpg} => ["galleries/image1.jpg", "galleries/image1thumb.jpg", "galleries/image2.jpg", "galleries/image2thumb.jpg", "galleries/image3.jpg", "galleries/image3thumb.jpg"] irb(main):007:0> links.reject {|l| l =~ /thumb/} => ["galleries/image1.jpg", "galleries/image2.jpg", "galleries/image3.jpg"] You can as specific as you need for the regexp: irb(main):008:0> links.reject {|l| l =~ /galleries\/.*thumb.*jpg/} => ["galleries/image1.jpg", "galleries/image2.jpg", "galleries/image3.jpg"] Hope this helps, Jesus.