views:

65

answers:

1

Hello,

What i'm trying to achieve here is lets say we have two example urls:

url1 "http://emy.dod.com/kaskaa/dkaiad/amaa//////////" & url2 = "http://www.example.com/".

How can I extract the striped down urls?

url1 : "http://emy.dod.com/kaskaa/dkaiad/amaa" & url2 to "http://http://www.example.com"?

URI.parse in ruby sanitizes certain type of malformed url but is ineffective in this case.

If we use regex then /^(.*)\/$/ removes a single slash (/) from url1 & is ineffective for url2.

Is anybody aware of how to handle this type of url parsing?

The point here is I dont want my system to have "http://www.example.com/" & "http://www.example.com" being treated as two different urls.

And same goes for "http://emy.dod.com/kaskaa/dkaiad/amaa////" & "http://emy.dod.com/kaskaa/dkaiad/amaa/"

cheers,

-dg

+1  A: 

If you just need to remove all slashes from the end of the url string then you can try the following regex:

"http://emy.dod.com/kaskaa/dkaiad/amaa//////////".sub(/(\/)+$/,'')
"http://www.example.com/".sub(/(\/)+$/,'')

/(\/)+$/ - this regex finds one or more slashes at the end of the string. Then we replace this match with empty string.

Hope this helps.

Alex
Good answer. A minor regex comment is that the parentheses are not required here.
Thanks Alex. I figured out yesterday gsub(/\/*$/) works too as crudson mentioned.