]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/regex.h
minor clean up
[wxWidgets.git] / include / wx / regex.h
index 5927f583f36a4e6340289c445f374cf4b121a5d0..8fb775da6d1a397972cd3ebb54c62cefc0b33948 100644 (file)
@@ -20,6 +20,8 @@
 
 #if wxUSE_REGEX
 
 
 #if wxUSE_REGEX
 
+class WXDLLEXPORT wxString;
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -33,7 +35,7 @@
 // flags for regex compilation: these can be used with Compile()
 enum
 {
 // flags for regex compilation: these can be used with Compile()
 enum
 {
-    // use extended regex syntax: default
+    // use extended regex syntax (default)
     wxRE_EXTENDED = 0,
 
     // use basic RE syntax
     wxRE_EXTENDED = 0,
 
     // use basic RE syntax
@@ -51,7 +53,7 @@ enum
     wxRE_NEWLINE  = 16,
 
     // default flags
     wxRE_NEWLINE  = 16,
 
     // default flags
-    wxRE_DEFAULT  = wxRE_NOSUB | wxRE_EXTENDED
+    wxRE_DEFAULT  = wxRE_EXTENDED
 };
 
 // flags for regex matching: these can be used with Matches()
 };
 
 // flags for regex matching: these can be used with Matches()
@@ -97,18 +99,45 @@ public:
     // TRUE if matches and FALSE otherwise
     //
     // flags may be combination of wxRE_NOTBOL and wxRE_NOTEOL
     // TRUE if matches and FALSE otherwise
     //
     // flags may be combination of wxRE_NOTBOL and wxRE_NOTEOL
-    bool Matches(const wxString& str, int flags = 0) const;
+    //
+    // may only be called after successful call to Compile()
+    bool Matches(const wxChar *text, int flags = 0) const;
 
     // get the start index and the length of the match of the expression
     // (index 0) or a bracketed subexpression (index != 0)
     //
 
     // 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
     bool GetMatch(size_t *start, size_t *len, size_t index = 0) const;
 
     // 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
+    // returned if match failed
+    //
+    // may only be called after successful call to Matches()
+    wxString GetMatch(const wxString& text, size_t index = 0) 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
     // 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
-    int Replace(wxString *str, const wxString& replacement) const;
+    //
+    // the replacement text may contain backreferences (\number) which will be
+    // replaced with the value of the corresponding subexpression in the
+    // 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
+    // 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
+    int ReplaceFirst(wxString *text, const wxString& replacement) const
+        { return Replace(text, replacement, 1); }
+
+    // replace all occurences: this is actually a synonym for Replace()
+    int ReplaceAll(wxString *text, const wxString& replacement) const
+        { return Replace(text, replacement, 0); }
 
     // dtor not virtual, don't derive from this class
     ~wxRegEx();
 
     // dtor not virtual, don't derive from this class
     ~wxRegEx();