class EE::System::RegEx¶
Overview¶
#include <regex.hpp> class RegEx: public EE::System::PatternMatcher { public: // enums enum Options; // structs struct MatchDataDeleter; // construction RegEx(std::string_view pattern, Uint32 options = Options::Utf|Options::AllowFallback, bool useCache = true); RegEx(RegEx&&); virtual ~RegEx(); // methods RegEx& operator=(RegEx&&); virtual bool isValid() const; virtual bool matches(const char* stringSearch, int stringStartOffset, PatternMatcher::Range* matchList, size_t stringLength) const; virtual bool matches(const std::string& str, PatternMatcher::Range* matchList = nullptr, int stringStartOffset = 0) const; virtual const size_t& getNumMatches() const; int getCaptureCount() const; virtual const std::string_view& getPattern() const; };
Inherited Members¶
public: // enums enum PatternType; // structs struct Range; // classes class Match; class State; // methods PatternType getType() const; PatternMatcher::Match gmatch(const char* s); PatternMatcher::Match gmatch(const char* s); PatternMatcher::Match gmatch(const std::string& string); PatternMatcher::Match gmatch(const std::string& string); bool range(int indexGet, int& startMatch, int& endMatch, const PatternMatcher::Range* returnedMatched) const; bool find(const std::string& s, int& startMatch, int& endMatch, int offset = 0, int returnedMatchIndex = 0) const; bool find(const char* stringSearch, int& startMatch, int& endMatch, int stringStartOffset = 0, int stringLength = 0, int returnMatchIndex = 0) const; bool find(const std::string& s, int& startMatch, int& endMatch, int offset, int returnedMatchIndex, PatternMatcher::Range* matchesBuffer) const; bool find( const char* stringSearch, int& startMatch, int& endMatch, int stringStartOffset, int stringLength, int returnMatchIndex, PatternMatcher::Range* matchesBuffer ) const; std::string gsub(const char* text, const char* replace); std::string gsub(const std::string& text, const std::string& replace); virtual const std::string_view& getPattern() const = 0; virtual bool matches(const char* stringSearch, int stringStartOffset, PatternMatcher::Range* matchList, size_t stringLength) const = 0; virtual bool matches(const std::string& str, PatternMatcher::Range* matchList = nullptr, int stringStartOffset = 0) const = 0; virtual const size_t& getNumMatches() const = 0; virtual bool isValid() const = 0;
Detailed Documentation¶
Construction¶
RegEx(RegEx&&)
Movable, not copyable: the compiled pattern and the match data are owned. Moving hands them over, copying would release them twice.
Methods¶
virtual bool matches(const std::string& str, PatternMatcher::Range* matchList = nullptr, int stringStartOffset = 0) const
Note
Not thread-safe: the object keeps reusable match state (mMatchNum, mMatchData), so a single instance must not be used from several threads at once. Construct one per thread.