%% Created: 14.07.01
%% RCS-ID: $Id$
%% Copyright: (c) 2001 Vadim Zeitlin
-%% License: wxWidgets license
+%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxRegEx}}\label{wxregex}
\begin{verbatim}
wxString text;
...
-wxRegEx reEmail = "([^@]+)@([[:alnum:].-_].)+([[:alnum:]]+)";
+wxRegEx reEmail = wxT("([^@]+)@([[:alnum:].-_].)+([[:alnum:]]+)");
if ( reEmail.Matches(text) )
{
wxString text = reEmail.GetMatch(email);
wxString username = reEmail.GetMatch(email, 1);
- if ( reEmail.GetMatch(email, 3) == "com" ) // .com TLD?
+ if ( reEmail.GetMatch(email, 3) == wxT("com") ) // .com TLD?
{
...
}
}
// or we could do this to hide the email address
-size_t count = reEmail.ReplaceAll(text, "HIDDEN@\\2\\3");
+size_t count = reEmail.ReplaceAll(text, wxT("HIDDEN@\\2\\3"));
printf("text now contains %u hidden addresses", count);
\end{verbatim}
+\wxheading{Include files}
+
+<wx/regex.h>
+
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxRegEx::wxRegEx}\label{wxregexwxregex}
and only if {\tt wxRE\_NOSUB} was {\bf not} used in
\helpref{Compile()}{wxregexcompile}.
-Returns {\tt false} if no match or if an error occured.
+Returns {\tt false} if no match or if an error occurred.
\constfunc{wxString}{GetMatch}{\param{const wxString\& }{text}, \param{size\_t }{index = 0}}
\constfunc{bool}{Matches}{\param{const wxChar* }{text}, \param{int }{flags = 0}}
+\constfunc{bool}{Matches}{\param{const wxChar* }{text}, \param{int }{flags}, \param{size\_t }{len}}
+
+\constfunc{bool}{Matches}{\param{const wxString\& }{text}, \param{int }{flags = 0}}
+
Matches the precompiled regular expression against the string {\it text},
returns {\tt true} if matches and {\tt false} otherwise.
-Flags may be combination of {\tt wxRE\_NOTBOL} and {\tt wxRE\_NOTEOL}.
+{\it Flags} may be combination of {\tt wxRE\_NOTBOL} and {\tt wxRE\_NOTEOL}.
+
+Some regex libraries assume that the text given is null terminated, while
+others require the length be given as a separate parameter. Therefore for
+maximum portability assume that {\it text} cannot contain embedded nulls.
+
+When the {\it Matches(const wxChar *text, int flags = 0)} form is used,
+a {\it wxStrlen()} will be done internally if the regex library requires the
+length. When using {\it Matches()} in a loop
+the {\it Matches(text, flags, len)} form can be used instead, making it
+possible to avoid a {\it wxStrlen()} inside the loop.
May only be called after successful call to \helpref{Compile()}{wxregexcompile}.