#ifndef _WX_REGEX_H_
#define _WX_REGEX_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "regex.h"
#endif
#if wxUSE_REGEX
-class WXDLLEXPORT wxString;
+class WXDLLIMPEXP_BASE wxString;
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
-// max number of subexpression matches, the default should be big enough for
-// all uses but may be a bit wasteful
-#ifndef WX_REGEX_MAXMATCHES
- #define WX_REGEX_MAXMATCHES 1024
-#endif
-
// flags for regex compilation: these can be used with Compile()
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,
// wxRegEx: a regular expression
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxRegExImpl;
+class WXDLLIMPEXP_BASE wxRegExImpl;
-class WXDLLEXPORT wxRegEx
+class WXDLLIMPEXP_BASE wxRegEx
{
public:
// default ctor: use Compile() later
// 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
// the real guts of this class
wxRegExImpl *m_impl;
+
+ // as long as the class wxRegExImpl is not ref-counted,
+ // instances of the handle wxRegEx must not be copied.
+ wxRegEx(const wxRegEx&);
+ wxRegEx &operator=(const wxRegEx&);
};
#endif // wxUSE_REGEX