X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2d290a92376232ed2469b8723453ea086e23c0d0..5230934a95bf9b3112ec2a7e070e8cbb4cea7f55:/docs/latex/wx/regex.tex diff --git a/docs/latex/wx/regex.tex b/docs/latex/wx/regex.tex index 19a98ccf71..175fcd0aa4 100644 --- a/docs/latex/wx/regex.tex +++ b/docs/latex/wx/regex.tex @@ -51,6 +51,7 @@ No base class \wxheading{Data structures} Flags for regex compilation to be used with \helpref{Compile()}{wxregexcompile}: + \begin{verbatim} enum { @@ -79,7 +80,8 @@ enum Flags for regex matching to be used with \helpref{Matches()}{wxregexmatches}. These flags are mainly useful when doing several matches in a long string -to prevent erroneous matches for \verb|'^'| and \verb|'$'| +to prevent erroneous matches for {\tt '^'} and {\tt '\$'}: + \begin{verbatim} enum { @@ -91,6 +93,31 @@ enum } \end{verbatim} +\wxheading{Examples} + +A bad example of processing some text containing email addresses (the example +is bad because the real email addresses can have more complicated form than +{\tt user@host.net}): + +\begin{verbatim} +wxString text; +... +wxRegEx reEmail = "([^@]+)@([[: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? + { + ... + } +} + +// or we could do this to hide the email address +size_t count = reEmail.ReplaceAll(text, "HIDDEN@\\2\\3"); +printf("text now contains %u hidden addresses", count); +\end{verbatim} + \latexignore{\rtfignore{\wxheading{Members}}} \membersection{wxRegEx::wxRegEx}\label{wxregexwxregex} @@ -99,8 +126,6 @@ enum Default ctor: use \helpref{Compile()}{wxregexcompile} later. -\membersection{wxRegEx::wxRegEx}\label{wxregexwxregex} - \func{}{wxRegEx}{\param{const wxString\& }{expr}, \param{int }{flags = wxRE\_DEFAULT}} Create and compile the regular expression, use @@ -116,7 +141,7 @@ dtor not virtual, don't derive from this class \func{bool}{Compile}{\param{const wxString\& }{pattern}, \param{int }{flags = wxRE\_DEFAULT}} -Compile the string into regular expression, return {\tt TRUE} if ok or {\tt FALSE} +Compile the string into regular expression, return {\tt TRUE} if ok or {\tt FALSE} if string has a syntax error. \membersection{wxRegEx::IsValid}\label{wxregexisvalid} @@ -168,9 +193,9 @@ Replaces the current regular expression in the string pointed to by {\it text}, with the text in {\it replacement} and return number of matches replaced (maybe $0$ if none found) or $-1$ on error. -The replacement text may contain back references {\tt \\number} which will be +The replacement text may contain back references {\tt $\backslash$number} which will be replaced with the value of the corresponding subexpression in the -pattern match. {\tt \\0} corresponds to the entire match and {\tt \&} is a +pattern match. {\tt $\backslash$0} corresponds to the entire match and {\tt \&} is a synonym for it. Backslash may be used to quote itself or {\tt \&} character. {\it maxMatches} may be used to limit the number of replacements made, setting