X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e3f9e20cb15c62bd347a8e52d2d36529adbdb3d6..a4f6fe43c33bd7933645d110ad2719871dab043d:/include/wx/regex.h diff --git a/include/wx/regex.h b/include/wx/regex.h index 1656008c5a..77ed092997 100644 --- a/include/wx/regex.h +++ b/include/wx/regex.h @@ -1,26 +1,22 @@ /////////////////////////////////////////////////////////////////////////////// // Name: wx/regex.h // Purpose: regular expression matching -// Author: Karsten Ballüder +// Author: Karsten Ballueder // Modified by: VZ at 13.07.01 (integrated to wxWin) // Created: 05.02.2000 // RCS-ID: $Id$ -// Copyright: (c) 2000 Karsten Ballüder +// Copyright: (c) 2000 Karsten Ballueder // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_REGEX_H_ #define _WX_REGEX_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "regex.h" -#endif - #include "wx/defs.h" #if wxUSE_REGEX -class WXDLLIMPEXP_BASE wxString; +#include "wx/string.h" // ---------------------------------------------------------------------------- // constants @@ -31,7 +27,7 @@ enum { // use extended regex syntax wxRE_EXTENDED = 0, - + // use advanced RE syntax (built-in regex only) #ifdef wxHAS_REGEX_ADVANCED wxRE_ADVANCED = 1, @@ -72,7 +68,7 @@ enum // wxRegEx: a regular expression // ---------------------------------------------------------------------------- -class WXDLLIMPEXP_BASE wxRegExImpl; +class WXDLLIMPEXP_FWD_BASE wxRegExImpl; class WXDLLIMPEXP_BASE wxRegEx { @@ -87,27 +83,30 @@ public: (void)Compile(expr, flags); } - // return TRUE if this is a valid compiled regular expression + // return true if this is a valid compiled regular expression bool IsValid() const { return m_impl != NULL; } - // compile the string into regular expression, return TRUE if ok or FALSE + // compile the string into regular expression, return true if ok or false // if string has a syntax error bool Compile(const wxString& pattern, int flags = wxRE_DEFAULT); // matches the precompiled regular expression against a string, return - // TRUE if matches and FALSE otherwise + // true if matches and false otherwise // // flags may be combination of wxRE_NOTBOL and wxRE_NOTEOL + // len may be the length of text (ignored by most system regex libs) // // may only be called after successful call to Compile() - bool Matches(const wxChar *text, int flags = 0) const; + bool Matches(const wxString& text, int flags = 0) const; + bool Matches(const wxChar *text, int flags, size_t len) const + { return Matches(wxString(text, len), flags); } // get the start index and the length of the match of the expression // (index 0) or a bracketed subexpression (index != 0) // // may only be called after successful call to Matches() // - // return FALSE if no match or on error + // return false if no match or on error bool GetMatch(size_t *start, size_t *len, size_t index = 0) const; // return the part of string corresponding to the match, empty string is @@ -116,6 +115,12 @@ public: // may only be called after successful call to Matches() wxString GetMatch(const wxString& text, size_t index = 0) const; + // return 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 Compile() + size_t GetMatchCount() const; + // replaces the current regular expression in the string pointed to by // pattern, with the text in replacement and return number of matches // replaced (maybe 0 if none found) or -1 on error @@ -125,16 +130,16 @@ public: // pattern match // // maxMatches may be used to limit the number of replacements made, setting - // it to 1, for example, will only replace first occurence (if any) of the + // it to 1, for example, will only replace first occurrence (if any) of the // pattern in the text while default value of 0 means replace all int Replace(wxString *text, const wxString& replacement, size_t maxMatches = 0) const; - // replace the first occurence + // replace the first occurrence int ReplaceFirst(wxString *text, const wxString& replacement) const { return Replace(text, replacement, 1); } - // replace all occurences: this is actually a synonym for Replace() + // replace all occurrences: this is actually a synonym for Replace() int ReplaceAll(wxString *text, const wxString& replacement) const { return Replace(text, replacement, 0); }