In this gsub block, I'd like to save the searched parenthetical data,
indicated by (.*) in line 2. The script works, but, instead of getting
the parenthetical data, I'm getting "$1." Very literal, but, not what I
want. What am I doing wrong?
Thanks.
Peter
1 counter = 0
2 contents.gsub!(/^%%Page:(.*)[0-9]{1,5}$/) do |match|
3 counter += 1
4 "%%Page: $1 #{counter}"
Substituting with a find counter . . .
on 23.05.2006 16:01
Re: Substituting with a find counter . . .
on 23.05.2006 16:16
2006/5/23, Peter Bailey <pbailey@bna.com>: > In this gsub block, I'd like to save the searched parenthetical data, > indicated by (.*) in line 2. The script works, but, instead of getting > the parenthetical data, I'm getting "$1." Very literal, but, not what I > want. What am I doing wrong? You're missing a hash which leads to your $1 being used literally: > 1 counter = 0 > 2 contents.gsub!(/^%%Page:(.*)[0-9]{1,5}$/) do |match| > 3 counter += 1 > 4 "%%Page: $1 #{counter}" make that last line "%%Page: #$1 #{counter}" Kind regards robert
Re: Substituting with a find counter . . .
on 23.05.2006 16:23
Peter Bailey wrote: > In this gsub block, I'd like to save the searched parenthetical data, > indicated by (.*) in line 2. The script works, but, instead of getting > the parenthetical data, I'm getting "$1." Very literal, but, not what I > want. What am I doing wrong? > > Thanks. > Peter > > > 1 counter = 0 > 2 contents.gsub!(/^%%Page:(.*)[0-9]{1,5}$/) do |match| > 3 counter += 1 > 4 "%%Page: $1 #{counter}" "%%Page: #{$1} #{counter}" should help. Also, the .* is gobbling up any digits except the last. You probably want a space between .* and [0-9], or make the . match non-greedy with .*?. Since your replacement string has a space, I'm guessing that's what you want. -- Jim Weirich
