BOOL WINAPI _IsRegMatchA(CHAR* lpszPatt,CHAR* lpszStr) { CRegexpA Reg(lpszPatt); auto mr=Reg.Match(lpszStr); return mr.IsMatched(); }
bool BaseChecker::operator()(feature::TypesHolder const & types) const { for (uint32_t t : types) if (IsMatched(t)) return true; return false; }
bool BaseChecker::operator()(vector<uint32_t> const & types) const { for (size_t i = 0; i < types.size(); ++i) { if (IsMatched(types[i])) return true; } return false; }
MRESULT WINAPI _RegMatchA(CRegexpA* lpReg, CHAR* lpszStr, int nStart, LPREGEXP_RESULT lprRslt) { auto mr=lpReg->Match(lpszStr,nStart); lprRslt->bIsMatched=mr.IsMatched(); if(!lprRslt->bIsMatched) return E_SUCCESS; lprRslt->rBase.nLeft=mr.GetStart(); lprRslt->rBase.nRight=mr.GetEnd(); auto mx=REG_MAX_GROUPS>mr.MaxGroupNumber()?mr.MaxGroupNumber():REG_MAX_GROUPS; lprRslt->nGroups=mx; for(int i=0;i<=mx;i++) { lprRslt->rGroups[i].nLeft=mr.GetGroupStart(i+1); lprRslt->rGroups[i].nRight=mr.GetGroupEnd(i+1); } return E_SUCCESS; }