Skip to content

Instantly share code, notes, and snippets.

@microwaves
Created August 25, 2011 16:23
Show Gist options
  • Save microwaves/1171072 to your computer and use it in GitHub Desktop.
Save microwaves/1171072 to your computer and use it in GitHub Desktop.
>> "https://www.google.com/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash".match /^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/
=> #<MatchData "https://www.google.com/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash" 1:"https:/" 2:"https" 3:"www.google.com" 4:"/dir/1/2/" 5:"/2" 6:"search.html" 7:"?arg=0-a&arg1=1-b&arg3-c#hash" 8:nil>
>> "ftp://ftp1.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/".match /^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/
=> #<MatchData "ftp://ftp1.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/" 1:"ftp:/" 2:"ftp" 3:"ftp1.freebsd.org" 4:"/pub/FreeBSD/ports/i386/" 5:"/i386" 6:"packages-8.2-release/All/" 7:"" 8:nil>
>> u = "ftp://ftp1.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/".match /^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/
=> #<MatchData "ftp://ftp1.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/" 1:"ftp:/" 2:"ftp" 3:"ftp1.freebsd.org" 4:"/pub/FreeBSD/ports/i386/" 5:"/i386" 6:"packages-8.2-release/All/" 7:"" 8:nil>
>> u
=> #<MatchData "ftp://ftp1.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/" 1:"ftp:/" 2:"ftp" 3:"ftp1.freebsd.org" 4:"/pub/FreeBSD/ports/i386/" 5:"/i386" 6:"packages-8.2-release/All/" 7:"" 8:nil>
>> u[4]
=> "/pub/FreeBSD/ports/i386/"
>> u[4] + u[6]
=> "/pub/FreeBSD/ports/i386/packages-8.2-release/All/"
>>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment