From: Brian Candler Date: 2008-11-27T23:44:33+09:00 Subject: Re: reg exp Hai anh Le wrote: > Hi every body. I'm a newbie in Ruby and have problem with reg exp. > > In one string as example "The device 13c include something as in Fig. 2a > and 3b", I want to detect some numbers have style "13c" and ignore > others number have style "2a and 3b" > > I use /(\d+[a-z]*)( [^a][^n][^d] )(\d)+[a-z]*/ but it not ok. Can > someone help me plz? Tricky. I suggest: str.scan(/\d+[a-z]?(?: and \d+[a-z]?)?/).reject { |e| /and/ =~ e } I thought about lookahead assertions, e.g. (?! and \d+), but since these don't consume characters the 3b is likely to be matched later as a standalone number. Details at http://www.ruby-doc.org/docs/ProgrammingRuby/ - click on "The Ruby Language" in the contents, and scroll down to Extensions. -- Posted via http://www.ruby-forum.com/.