$this->getPatterns(), "exemptions" => $this->getExemptions(), ]; } /** * @inheritDoc */ public function filter(string $data): string { foreach ($this->getPatterns() as $pattern) { $data = preg_replace_callback($pattern->get(), function ($matches) use ($pattern) { foreach ($this->getExemptions() as $exemptionPattern) { if (preg_match($exemptionPattern->get(), $matches[0])) { return $matches[0]; } } return $pattern->getReplacement(); }, $data); } return $data; } }