#include #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; auto t = uc.NewTransformer(); auto log = "INFO: Task started. ERROR: Connection failed. INFO: Task finished."; auto infoRule = t.Pattern("INFO: {msg}."); auto errorRule = t.Pattern("ERROR: {msg}."); t.Text(log); t.Find(); // Get the first match specific to the error rule auto firstErrorMatch = errorRule.Matches()[0]; cout << "First error match text: '" << firstErrorMatch.Text() << "'" << endl; // Now, find its index within the global list of all matches auto globalIndex = t.Matches().IndexOf(firstErrorMatch.StartPosition()); cout << "The first error is the match at global index: " << globalIndex << endl; // Verify by printing the match from the global list cout << "Global match at that index: '" << t.Matches()[globalIndex].Text() << "'" << endl; }