[#13775] Problems with racc rule definitions — Michael Neumann <neumann@...>

15 messages 2001/04/17
[#13795] Re: Problems with racc rule definitions — Minero Aoki <aamine@...> 2001/04/18

Hi,

[#13940] From Guido, with love... — Dave Thomas <Dave@...>

52 messages 2001/04/20

[#13953] regexp — James Ponder <james@...>

Hi, I'm new to ruby and am coming from a perl background - therefore I

19 messages 2001/04/21

[#14033] Distributed Ruby and heterogeneous networks — harryo@... (Harry Ohlsen)

I wrote my first small distributed application yesterday and it worked

15 messages 2001/04/22

[#14040] RCR: getClassFromString method — ptkwt@...1.aracnet.com (Phil Tomson)

It would be nice to have a function that returns a class type given a

20 messages 2001/04/22

[#14130] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Guy N. Hurst wrote:

21 messages 2001/04/24
[#14148] Re: Ruby mascot proposal — Stephen White <spwhite@...> 2001/04/24

On Tue, 24 Apr 2001, Conrad Schneiker wrote:

[#14188] Re: Ruby mascot proposal — matz@... (Yukihiro Matsumoto) 2001/04/25

Hi,

[#14193] Re: Ruby mascot proposal — "W. Kent Starr" <elderburn@...> 2001/04/25

On Tuesday 24 April 2001 23:02, Yukihiro Matsumoto wrote:

[#14138] Re: python on the smalltalk VM — Conrad Schneiker <schneik@...>

FYI: Thought this might be of interest to the JRuby and Ruby/GUI folks.

27 messages 2001/04/24
[#14153] Re: python on the smalltalk VM — Andrew Kuchling <akuchlin@...> 2001/04/24

Conrad Schneiker <schneik@austin.ibm.com> writes:

[#14154] array#flatten! question — Jim Freeze <jim@...> 2001/04/24

Hello.

[#14159] Can I insert into an array — Jim Freeze <jim@...> 2001/04/24

Ok, this may be a dumb question, but, is it possible to insert into an

[#14162] Re: Can I insert into an array — Dave Thomas <Dave@...> 2001/04/24

Jim Freeze <jim@freeze.org> writes:

[#14289] RCR: Array#insert — Shugo Maeda <shugo@...> 2001/04/27

At Wed, 25 Apr 2001 01:28:36 +0900,

[#14221] An or in an if. — Tim Pettman <tjp@...>

Hi there,

18 messages 2001/04/25

[#14267] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Danny van Bruggen,

16 messages 2001/04/26

[#14452] How to do it the Ruby-way 3 — Stefan Matthias Aust <sma@3plus4.de>

First a question: Why is

21 messages 2001/04/30

[ruby-talk:13956] Re: regexp

From: "Guy N. Hurst" <gnhurst@...>
Date: 2001-04-21 04:04:18 UTC
List: ruby-talk #13956
James Ponder wrote:
> 
> Hi, I'm new to ruby and am coming from a perl background - therefore I
> was hoping to use the perlisms in ruby when it came to regexps.
> 
> Quite often you have an input line, and you want to pull data out from it
> using a regexp.  In perl I would do the following, naming my fields without
> ever using $1, $2, etc.:
> 
>   if (($key, $val) = $var =~ /^(.+)=(.+)$/) {
>     # ...
>   }
> 

Something like this came up before (see [ruby-talk:01871] and 01873)

...
> I thought about doing
> 
>   key, val = var =~ /^(.+)=(.+)$/ && $~[1..-1]
>   if key
>     ...
> 
> but nobody would be able to read my code (besides I started feeling sick)...
> 
> so at the moment I just do:
> 
>   if var =~ /^(.+)=(.+)$/
>     key, val = $1, $2
> 
> but that's no where near as nice as perl's one-liner (and I really hate using
> $1, $2 etc.).  Any ideas?
> 

Some things have to be rethought to be done well in Ruby.
This perlism you seek may not be already so easily available,
but you could make something to assist you in the future...


class Regexp
  def if_match(str="")
    if match(str.to_s)
      yield($~[1..-1])
    end
  end
end



/^(.+)=(.+)$/.if_match(var){|v1, v2| 
  # ....
}


I would prefer saving the regex:

pair_re = /^(.+)=(.+)$/

pair_re.if_match(var){|v1,v2|
  # ....
}

If it matches, it passes the values in and executes the block,
otherwise, the block is skipped.

You can enhance this further, of course :-)


Guy N. Hurst

-- 
HurstLinks Web Development    http://www.hurstlinks.com/
Norfolk, VA  23510            (757)623-9688 FAX 623-0433
PHP/MySQL - Ruby/Perl - HTML/Javascript

In This Thread