Wow! Thank you Rob.
I found some problems with your pseudo-code, but I got it to do what I wanted. I uploaded a snapshot of my program, as well as the .class and the .form files to my website http://notesmine.com/gambas_regexp Thank you for your help! PS: I also was confused by the wiki, when I was prompted for a username/password when I clicked on the properties of the Regexp. --Nate Rob Kudla wrote: > > On Wednesday 25 June 2008 10:21, Nathan Neff wrote: >> For example, I want to find all non-whitespace characters in the >> string "Gambas", and >> iterate through them. I tried code like this: >> rege.Compile("(\\S)") >> FOR i = 1 TO rege.SubMatches.count >> Message(rege.SubMatches[i].Text) >> But I can only get it to print out the "g" character. > > Submatches refer to the parts of your regular expression in > parentheses; matches don't automatically repeat unless you call Exec > multiple times. For example, if you wrote > > rege.Compile("(\\S)..(\\S).(\\S)") > > you would get three entries in Submatches, which would be g, b and s. > You should theoretically be able to do this, but I just tested it in > a Perl one-liner and there it only returns the last character: > > rege.Compile("(\\S)+") > > A better solution is to use the Offset property and write your own > method to do a global search (here's some pseudocode to get you > started:) > > private function GRX(pattern as string, subject as string) as String[] > > dim re as new Regexp > dim matches as new String[] > dim tmp as string > > tmp = subject > re.Compile(pattern) > re.Exec(tmp) > do while re.text <> "" > matches.add(re.text) > tmp = mid(tmp, re.offset + 2) ' may need to be 1, can't remember > re.Exec(tmp) > loop > > return matches > > end > > I probably should have just come up with some way to do that inside > the component, but it didn't occur to me at the time. > > I see that most of the class member documentation never made it over > from the old Wiki to the current one, so I'll try to take some time > and fix that if I can find my old static copy of the wiki. I wonder > if it would be useful to at least default to a syntax summary (as in > VB's class inspector) rather than prompting the user to edit the page > if the documentation's missing. As it is, if you edit the page but > leave it blank and save it, the wiki inserts the syntax summary > anyway. > > Rob > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Gambas-user mailing list > Gambas-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-user > > -- View this message in context: http://www.nabble.com/Regexp-Submatches-tp18113718p18122201.html Sent from the gambas-user mailing list archive at Nabble.com. ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user