[Gambas-user] Regexpr appears not to be working

Benoit Minisini gambas at ...1...
Sun Nov 30 21:32:53 CET 2008


On dimanche 30 novembre 2008, John Harrold wrote:
> Hi all
> I am experimenting with the PCRE class to understand more about regular
> expressions and Gambas in general
>
> I have created a form with two textboxes, one for text input the other for
> the regular expression text to test against.
> There are a number of labels for displaying results returned from the call
> to Regexp.
>
> Below is the commented code for the change event for the input
> textbox:txtInput.
>
> The issue I have is with the line marked ***.
> By looking at the PCRE class documentation it seems that the line should
> return a string.
>
> *PCRE Documentation on .SubMatches*
> *RegexpSubmatches (gb.pcre)*
> * .RegexpSubmatches contains the submatches returned from a
> Regexp<http://gambasdoc.org/help/comp/gb.pcre/regexp?v3>match. You
> access it with the SubMatches
> property <http://gambasdoc.org/help/def/property?v3> of the Regexp class. *
>
> * Each member of a .RegexpSubmatches collection simply contains the text of
> the corresponding submatch. For example, with a subject of "quick brown
> fox" and a pattern of "brown (\S+)", SubMatches[0] would contain "fox". *
> It does, however, complain with the following message:
>
> *Type mismatch: Wanted Number, Date or String, got .regexprSubMatches
> instead.
> *
> The message seems to me to suggest that an array of .RegexpSubMatches is
> being returned instead.
> I have tried to read this returned array into a variety of arrays (string
> and Object) but it always returns the above message.
>
> If I comment out the line I get no errors and the call to Regex returns
> Regex.Text, Regex.Offset and Regex.SubMatches.Count correctly.
>
> Am I understanding the way to use the Regexpr correctly or have I made a
> fundamental mistake somewhere?
> Could it be a bug?
>
> Budgieboy
>
> *Code for input textbox:*
>
> *PUBLIC SUB txtInput_Change()
>   DIM Regex AS Regexp
>
>     IF bCleared = TRUE THEN   'Flag to prevent error if try to send empty
> string to Regex
>       bCleared = FALSE
>
>     ELSE
>       IF txtInput.Text = "" THEN 'We have empty input textbox, usually from
> delete/backspace
>         txtInput.BackColor = Color.RGB(255, 165, 204)
>         RETURN
>       ENDIF
>       Regex = NEW Regexp(txtInput.Text, txtRegex.Text)  'Call Regexpr
>
>       lblResult.Caption = Regex.Text
>       lblMatch.Caption = Regex.SubMatches.Count
>       lblOffset.Caption = Regex.Offset
>
>       'This line below causes error:
>       'Type mismatch: Wanted Number, Date or String, got .regexprSubMatches
> instead
> ***   IF Regex.SubMatches > 0 THEN lblSubMatches.Caption =
> Regex.SubMatches[0].Text

--> IF Regex.SubMatches.Count > 0 THEN ...

-- 
Benoit Minisini




More information about the User mailing list