[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to match last word?

camenix

11/5/2006 12:04:00 PM

Hi,all
I has a script to match 'Transfer dbf to SQLServer', the last
comand successfully ended.But I found no way to match last
command.Whoever can help me?

main.rb
string='
Program begin at 2006-11-05T15:01:13+0800
Change image name to lower begin at 2006-11-05T15:01:13+0800
Change image name to lower end at 2006-11-05T15:01:14+0800
Transfer dbf to SQLServer begin at 2006-11-05T15:01:14+0800
Transfer dbf to SQLServer end at 2006-11-05T15:01:15+0800
Modify Tables begin at 2006-11-05T15:01:15+0800
'
re=/\n{0,1}(.+?)\s+(end\s+at)(.+?)\n/i
re.match(string)
puts $1,$2,$3,$4

The string is came from a file,so the "\n" maybe ommited,but
/\n{0,1}(.+?)\s+(end\s+at)(.+?)(\n|\Z)/i didn't work.
This form of regular expresion always match 'Change image name to
lower'.($2)

3 Answers

Robert Klemme

11/5/2006 12:52:00 PM

0

camenix <vipeak@gmail.com> wrote:
> Hi,all
> I has a script to match 'Transfer dbf to SQLServer', the last
> comand successfully ended.But I found no way to match last
> command.Whoever can help me?
>
> main.rb
> string='
> Program begin at 2006-11-05T15:01:13+0800
> Change image name to lower begin at 2006-11-05T15:01:13+0800
> Change image name to lower end at 2006-11-05T15:01:14+0800
> Transfer dbf to SQLServer begin at 2006-11-05T15:01:14+0800
> Transfer dbf to SQLServer end at 2006-11-05T15:01:15+0800
> Modify Tables begin at 2006-11-05T15:01:15+0800
> '
> re=/\n{0,1}(.+?)\s+(end\s+at)(.+?)\n/i
> re.match(string)
> puts $1,$2,$3,$4
>
> The string is came from a file,so the "\n" maybe ommited,but
> /\n{0,1}(.+?)\s+(end\s+at)(.+?)(\n|\Z)/i didn't work.
> This form of regular expresion always match 'Change image name to
> lower'.($2)

>> string='
Program begin at 2006-11-05T15:01:13+0800
Change image name to lower begin at 2006-11-05T15:01:13+0800
Change image name to lower end at 2006-11-05T15:01:14+0800
Transfer dbf to SQLServer begin at 2006-11-05T15:01:14+0800
Transfer dbf to SQLServer end at 2006-11-05T15:01:15+0800
Modify Tables begin at 2006-11-05T15:01:15+0800
'
>> puts string.scan(%r{^(.*)\s+(?:begin|end) at .*$})
Program
Change image name to lower
Change image name to lower
Transfer dbf to SQLServer
Transfer dbf to SQLServer
Modify Tables
=> nil

Not the most efficient RX but seems to work - at least according to what I
gather from your posting.

Kind regards

robert

camenix

11/5/2006 2:19:00 PM

0



On Nov 5, 8:52 pm, "Robert Klemme" <shortcut...@googlemail.com> wrote:
> camenix <vip...@gmail.com> wrote:
> > Hi,all
> > I has a script to match 'Transfer dbf to SQLServer', the last
> > comand successfully ended.But I found no way to match last
> > command.Whoever can help me?
>
> > main.rb
> > string='
> > Program begin at 2006-11-05T15:01:13+0800
> > Change image name to lower begin at 2006-11-05T15:01:13+0800
> > Change image name to lower end at 2006-11-05T15:01:14+0800
> > Transfer dbf to SQLServer begin at 2006-11-05T15:01:14+0800
ap> > Transfer dbf to SQLServer end at 2006-11-05T15:01:15+0800
> > Modify Tables begin at 2006-11-05T15:01:15+0800
> > '
> > re=/\n{0,1}(.+?)\s+(end\s+at)(.+?)\n/i
> > re.match(string)
> > puts $1,$2,$3,$4
>
> > The string is came from a file,so the "\n" maybe ommited,but
> > /\n{0,1}(.+?)\s+(end\s+at)(.+?)(\n|\Z)/i didn't work.
> > This form of regular expresion always match 'Change image name to
> > lower'.($2)
> >> string='Program begin at 2006-11-05T15:01:13+0800
> Change image name to lower begin at 2006-11-05T15:01:13+0800
> Change image name to lower end at 2006-11-05T15:01:14+0800
> Transfer dbf to SQLServer begin at 2006-11-05T15:01:14+0800
> Transfer dbf to SQLServer end at 2006-11-05T15:01:15+0800
> Modify Tables begin at 2006-11-05T15:01:15+0800
> '>> puts string.scan(%r{^(.*)\s+(?:begin|end) at .*$})Program
> Change image name to lower
> Change image name to lower
> Transfer dbf to SQLServer
> Transfer dbf to SQLServer
> Modify Tables
> => nil
>
> Not the most efficient RX but seems to work - at least according to what I
> gather from your posting.
>
> Kind regards
>
> robert
It worked!
re=/^(.+?)\s+(end\s+at)(.+?)$/i
puts s.match(re)
result:Change image name to lower end at 2006-11-05T15:01:14+0800
$2==Change image name to lower
puts s.scan(re)
result:
Change image name to lower
end at
2006-11-05T15:01:14+0800
Transfer dbf to SQLServer
end at
2006-11-05T15:01:15+0800
$2==Transfer dbf to SQLServer

appreciate your help.

Wolffy

11/5/2010 8:33:00 PM

0

On 11/4/2010 3:02 PM, Kingpin wrote:
> Got mad respect for you wolffy, but I'm not sure how you mention
> Corvette and NF above a plethora of others(JD,TM:BOP, AFM, MM, T2, FH,
> etc... but to each his own.

No problem. But when someone asks best art I specifically look for items
like good use of color pallet and originality. While all the titles you
mention have great art that completes the theme, I picked out games
whose artwork just blew me away. The list of Great art work from a 90s
pin is way too long for me to type out.

-wolffy