#ifndef REGEX_ANNOTATION_HDR #define REGEX_ANNOTATION_HDR #include #include "concordia/common/config.hpp" #include "concordia/tokenized_sentence.hpp" #include "concordia/concordia_exception.hpp" #include #include #include #include typedef boost::error_info my_tag_error_info; /*! Class for representing a regular expression annotation rule. Holds regex pattern string for matching and replacement string for annotating found matches. */ class RegexRule { public: /*! Constructor. \param patternString regex pattern to match \param annoationType type of annotation \param caseSensitive case sensitivity of the pattern */ RegexRule(std::string patternString, char annotationType, std::string value, bool caseSensitive = true) throw(ConcordiaException); /*! Destructor. */ virtual ~RegexRule(); /*! Applies the operation on anonymized sentence. \param sentence the input sentence */ void apply(boost::shared_ptr sentence); private: char _annotationType; std::string _value; boost::u32regex _pattern; }; #endif