diff options
| author | vvvv <[email protected]> | 2024-11-07 12:29:36 +0300 |
|---|---|---|
| committer | vvvv <[email protected]> | 2024-11-07 13:49:47 +0300 |
| commit | d4c258e9431675bab6745c8638df6e3dfd4dca6b (patch) | |
| tree | b5efcfa11351152a4c872fccaea35749141c0b11 /yql/essentials/core/url_preprocessing/pattern_group.cpp | |
| parent | 13a4f274caef5cfdaf0263b24e4d6bdd5521472b (diff) | |
Moved other yql/essentials libs YQL-19206
init
commit_hash:7d4c435602078407bbf20dd3c32f9c90d2bbcbc0
Diffstat (limited to 'yql/essentials/core/url_preprocessing/pattern_group.cpp')
| -rw-r--r-- | yql/essentials/core/url_preprocessing/pattern_group.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/yql/essentials/core/url_preprocessing/pattern_group.cpp b/yql/essentials/core/url_preprocessing/pattern_group.cpp new file mode 100644 index 00000000000..8185a84a7f1 --- /dev/null +++ b/yql/essentials/core/url_preprocessing/pattern_group.cpp @@ -0,0 +1,28 @@ +#include "pattern_group.h" + +namespace NYql { + +void TPatternGroup::Add(const TString& pattern, const TString& alias) { + auto it = CompiledPatterns.find(pattern); + if (it != CompiledPatterns.end()) { + return; + } + + CompiledPatterns.emplace(pattern, std::make_pair(TRegExMatch(pattern), alias)); +} + +bool TPatternGroup::IsEmpty() const { + return CompiledPatterns.empty(); +} + +TMaybe<TString> TPatternGroup::Match(const TString& s) const { + for (auto& p : CompiledPatterns) { + if (p.second.first.Match(s.c_str())) { + return p.second.second; + } + } + + return Nothing(); +} + +} |
