[Gambas-user] Re gexp Submatches
Nate-37
Nathan.Neff at ...626...
Wed Jun 25 23:33:33 CEST 2008
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 at 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.
More information about the User
mailing list