X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f220b00998c85886f1e42176b83996abdeb98a2c..4116fac052b9b6f7963b4acf2721a24075692454:/docs/latex/wx/regex.tex diff --git a/docs/latex/wx/regex.tex b/docs/latex/wx/regex.tex index 91ac1c6374..c2ee1eab52 100644 --- a/docs/latex/wx/regex.tex +++ b/docs/latex/wx/regex.tex @@ -6,19 +6,34 @@ %% Created: 14.07.01 %% RCS-ID: $Id$ %% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license +%% License: wxWidgets license %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{\class{wxRegEx}}\label{wxregex} -wxRegEx represents a regular expression. The regular expressions syntax -supported is the POSIX one. Both basic and extended regular expressions are -supported but, unlike POSIX C API, the extended ones are used by default. +wxRegEx represents a regular expression. This class provides support +for regular expressions matching and also replacement. -This class provides support for regular expressions matching and also -replacement. It is built on top of either the system library (if it has support -for POSIX regular expressions - which is the case of the most modern Unices) or -uses the built-in Henry Spencer's library from tcl. +It is built on top of either the system library (if it has support +for POSIX regular expressions - which is the case of the most modern +Unices) or uses the built in Henry Spencer's library. Henry Spencer +would appreciate being given credit in the documentation of software +which uses his library, but that is not a requirement. + +Regular expressions, as defined by POSIX, come in two flavours: {\it extended} +and {\it basic}. The builtin library also adds a third flavour +of expression \helpref{advanced}{wxresyn}, which is not available +when using the system library. + +Unicode is fully supported only when using the builtin library. +When using the system library in Unicode mode, the expressions and data +are translated to the default 8-bit encoding before being passed to +the library. + +On platforms where a system library is available, the default is to use +the builtin library for Unicode builds, and the system library otherwise. +It is possible to use the other if preferred by selecting it when building +the wxWidgets. \wxheading{Derived from} @@ -31,8 +46,13 @@ Flags for regex compilation to be used with \helpref{Compile()}{wxregexcompile}: \begin{verbatim} enum { - // use extended regex syntax (default) + // use extended regex syntax wxRE_EXTENDED = 0, + + // use advanced RE syntax (built-in regex only) +#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED = 1, +#endif // use basic RE syntax wxRE_BASIC = 2, @@ -78,19 +98,19 @@ is bad because the real email addresses can have more complicated form than \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} @@ -150,6 +170,16 @@ May only be called after successful call to \helpref{Matches()}{wxregexmatches} and only if {\tt wxRE\_NOSUB} was {\bf not} used in \helpref{Compile()}{wxregexcompile}. +\membersection{wxRegEx::GetMatchCount}\label{wxregexgetmatchcount} + +\constfunc{size\_t}{GetMatchCount}{\void} + +Returns the size of the array of matches, i.e. the number of bracketed +subexpressions plus one for the expression itself, or $0$ on error. + +May only be called after successful call to \helpref{Compile()}{wxregexcompile}. +and only if {\tt wxRE\_NOSUB} was {\bf not} used. + \membersection{wxRegEx::Matches}\label{wxregexmatches} \constfunc{bool}{Matches}{\param{const wxChar* }{text}, \param{int }{flags = 0}}