[Pharo-project] Understanding regular expression matching

Nick Ager nick.ager at gmail.com
Fri Feb 11 19:52:07 CET 2011


Is it possible to make a regular expression which matches only part of a
string. For example:

| toSearch matcher doesMatch match1 match2 numMatches |
 toSearch := 'value: 6474 mm'.

matcher := RxMatcher forString: ' (\d+) '.
doesMatch := matcher matches: toSearch.
numMatches := matcher subexpressionCount.
match1 := (matcher subexpression: 1).
match2 := (matcher subexpression: 2).
 self halt.

which results in:
   doesMarch = false
   numMatches = 2
   match1 = nil
   match2 = nil

However if I replace the regular expression with: '.* (\d+) .*' so the whole
string is matched I see

   doesMarch = true
   numMatches = 2
   match1 = 'value: 6474 mm'
   match2 = '6474'

I can always pad my sub-matches with '.*', but I wondered if I'm missing a
trick to make the Regex work with substring matches


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110211/56a89e76/attachment.htm>

More information about the Pharo-project mailing list