From: "David A. Black" Date: 2010-08-07T23:08:02+09:00 Subject: Re: regexp help - substring of a backreference Hi -- On Sat, 7 Aug 2010, Bryan Kennerley wrote: > I'm putting together a web forum and want to parse web addresses that > are part of messages into clickable links. This is my attempt, I'm not > claiming its perfect but it works: > > text.gsub!(/http:?\/*(\w+[\w\-\.\/~\?%&=#;,\+:\@]+)/, > ' http://\1') > > The problem is that some web addresses are incredibly long, so I want > the link text to be limited to, say, 50 chars. i.e. the second \1 needs > to be \1[0..49] or something. I can't figure out any easy way of doing > it, any ideas? You can use the block form, plus the thread-local $ variables: text = "a bunch of miscellaneous words" text.gsub!(/a b(.+)/) { $1[0,10] } puts text # unch of mi David -- David A. Black, Senior Developer, Cyrus Innovation Inc. The Ruby training with Black/Brown/McAnally Compleat Philadelphia, PA, October 1-2, 2010 Rubyist http://www.compleatrubyist.com