2 * @file SubstitutionList.h
4 * @brief Declaration file for SubstitutionList.
10 #include <Poco/RegularExpression.h>
14 struct SubstitutionItem
16 SubstitutionItem(const std::string& pattern, const std::string& replacement,
17 int regexpCompileOptions);
18 SubstitutionItem(const SubstitutionItem& other);
20 const std::string pattern;
21 const std::string replacement;
22 const int regexpCompileOptions;
23 Poco::RegularExpression regexp; /**< Compiled regular expression */
26 class SubstitutionList
29 SubstitutionList() {};
31 void Add(const std::string& pattern, const std::string& replacement, int regexpCompileOptions);
32 void Add(const std::string& pattern, const std::string& replacement, bool caseSensitive, bool matchWholeWordOnly);
33 void RemoveAllFilters();
34 bool HasRegExps() const { return !m_list.empty(); }
35 size_t GetCount() const { return m_list.size(); }
36 std::string Subst(const std::string& subject, int codepage = CP_UTF8) const;
37 const SubstitutionItem& operator[](int index) const { return m_list[index]; }
40 std::vector<SubstitutionItem> m_list;