]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxRegEx::GetMatch
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 13 Jul 2001 17:10:00 +0000 (17:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 13 Jul 2001 17:10:00 +0000 (17:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/regex.h
src/common/regex.cpp

index 5927f583f36a4e6340289c445f374cf4b121a5d0..70443b2964cd853b0b074c9e58c8503b08dabf03 100644 (file)
@@ -33,7 +33,7 @@
 // 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
@@ -51,7 +51,7 @@ enum
     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()
@@ -97,14 +97,24 @@ public:
     // TRUE if matches and FALSE otherwise
     //
     // flags may be combination of wxRE_NOTBOL and wxRE_NOTEOL
+    //
+    // may only be called after successful call to Compile()
     bool Matches(const wxString& str, 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)
     //
+    // 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 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
index dcd016f2724f3bb8934f7970c70de53ebbf7c6ef..ec57e48df32774eefab98fefbf2b947d09705e59 100644 (file)
@@ -315,6 +315,15 @@ bool wxRegEx::GetMatch(size_t *start, size_t *len, size_t index) const
     return m_impl->GetMatch(start, len, index);
 }
 
+wxString wxRegEx::GetMatch(const wxString& text, size_t index) const
+{
+    size_t start, len;
+    if ( !GetMatch(&start, &len, index) )
+        return wxEmptyString;
+
+    return text.Mid(start, len);
+}
+
 int wxRegEx::Replace(wxString *pattern, const wxString& replacement) const
 {
     wxCHECK_MSG( IsValid(), -1, _T("must successfully Compile() first") );