Итак, у меня есть такая функция php, которую я хочу перевести на C ++:
protected function htmlTag($content, $tag, $attrName, $attrValue, $valueName)
{
preg_match_all("#<{$tag}[^>]*$attrName=['\"].*?$attrValue.*?['\"][^>]*$valueName=['\"](.+?)['\"][^>]*/?>#i", $content, $matches1);
preg_match_all("#<{$tag}[^>]*$valueName=['\"](.+?)['\"][^>]*$attrName=['\"].*?$attrValue.*?['\"][^>]*/?>#i", $content, $matches2);
$result = array_merge($matches1[1], $matches2[1]);
return empty($result)?false:$result[0];
}
пример использования:
$location = $this->htmlTag($content, 'meta', 'http-equiv', 'X-XRDS-Location', 'content');
$server = $this->htmlTag($content, 'link', 'rel', 'openid.server', 'href');
$delegate = $this->htmlTag($content, 'link', 'rel', 'openid.delegate', 'href');
(содержимое является результатом $content= curl_exec($curl);
)
preg_match_all
- Выполняет поиск в субъекте всех совпадений с регулярным выражением, заданным в шаблоне, и помещает их в совпадения в порядке, указанном флагами.После того, как найдено первое совпадение, последующие поиски продолжаются с конца последнего совпадения.
Как перевести его с помощью boost :: regexp?