Hi, Thanks for all the feedback. Apparently I have to increase my search capabilities in ProgrammingRuby, because there are things documented that I could not find :( . Ronald. > > > > Hi all, > > > > > > > > I was just wondering... Is there any place where Ruby's Regex > > > > capabilities are described? > > > > > > > > E.g. it seems that /\w{3}/ matches at least three consecutive > characters, > > > > but I do not seem to be able to locate any exact documentation on > this. > > > > > > > > Any idea's? > > > > > > Pickaxe is your best friend (ideally, the hardcopy). Some information > may be > > > found here: > > > http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_stdtypes.html > > > > > > Scroll down to "Regular Expressions" sections. > > > > > > Gennady. > > > > There is certainly a lot of information there, but I have the feeling > > that there are things not discussed. My example "r {m}" is not mentioned > > as such, but works anyway. > > > > It IS mentioned there, as well as answeres to ALL of your other questions > (see also http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html , > scroll down to "Regular Expression Options" and "Regular Expression > Patterns"). > > Here's a cut-and-paste subsection of "Regular Expressions" section at > http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_stdtypes.html > > <quote> > Repetition > > When we specified the pattern that split the song list line, /\s*\|\s*/, we > said we wanted to match a vertical bar surrounded by an arbitrary amount of > whitespace. We now know that the \s sequences match a single whitespace > character, so it seems likely that the asterisks somehow mean ``an arbitrary > amount.'' In fact, the asterisk is one of a number of modifiers that allow > you to match multiple occurrences of a pattern. > > If r stands for the immediately preceding regular expression within a > pattern, then: > > r * matches zero or more occurrences of r. > r + matches one or more occurrences of r. > r ? matches zero or one occurrence of r. > r {m,n} matches at least ``m'' and at most ``n'' occurrences of r. > r {m,} matches at least ``m'' occurrences of r. > > > These repetition constructs have a high precedence---they bind only to the > immediately preceding regular expression in the pattern. /ab+/ matches an > ``a'' followed by one or more ``b''s, not a sequence of ``ab''s. You have to > be careful with the * construct too---the pattern /a*/ will match any > string; every string has zero or more ``a''s. > > </quote> > > A cut-and-paste from > http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html : > > <quote> > Regular Expression Options > > A regular expression may include one or more options that modify the way the > pattern matches strings. If you're using literals to create the Regexp > object, then the options comprise one or more characters placed immediately > after the terminator. If you're using Regexp.new, the options are constants > used as the second parameter of the constructor. > > i Case Insensitive. The pattern match will ignore the case of letters > in the pattern and string. Matches are also case-insensitive if the global > variable $= is set. > o Substitute Once. Any #{...} substitutions in a particular regular > expression literal will be performed just once, the first time it is > evaluated. Otherwise, the substitutions will be performed every time the > literal generates a Regexp object. > m Multiline Mode. Normally, ``.'' matches any character except a > newline. With the /m option, ``.'' matches any character. > x Extended Mode. Complex regular expressions can be difficult to > read. The `x' option allows you to insert spaces, newlines, and comments in > the pattern to make it more readable. > > </quote> > Ronald Pijnacker Building: QV-106 Medical Imaging IT (MIMIT) Phone: +31 40 27 62 524 Philips Medical Systems, Best Email: Ronald.Pijnacker / best.ms.philips.com