string html = to_utf8(bibinfo.getInfo(entry.key(), buffer(), ci));
regex tagRegex("<span class=\"bib-([^\"]*)\">([^<]*)</span>");
smatch match;
- auto tagIt = std::sregex_iterator(html.cbegin(), html.cend(), tagRegex, regex_constants::match_default);
- auto tagEnd = std::sregex_iterator();
+ auto tagIt = lyx::sregex_iterator(html.cbegin(), html.cend(), tagRegex, regex_constants::match_default);
+ auto tagEnd = lyx::sregex_iterator();
map<string, string> delayedTags;
// Read all tags from HTML and convert those that have a 1:1 matching.
while (tagIt != tagEnd) {
string tag = tagIt->str(); // regex_match cannot work with temporary strings.
++tagIt;
- std::regex_match(tag, match, tagRegex);
- if (toDocBookTag.find(match[1]) == toDocBookTag.end()) {
+ if (regex_match(tag, match, tagRegex)) {
+ if (toDocBookTag[match[1]] == "SPECIFIC") {
+ delayedTags[match[1]] = match[2];
+ } else {
+ xs << xml::StartTag(toDocBookTag[match[1]]);
+ xs << from_utf8(match[2].str());
+ xs << xml::EndTag(toDocBookTag[match[1]]);
+ }
+ } else {
LYXERR0("The BibTeX field " << match[1].str() << " is unknown.");
xs << XMLStream::ESCAPE_NONE << from_utf8("<!-- Output Error: The BibTeX field " + match[1].str() + " is unknown -->\n");
- continue;
- }
-
- if (toDocBookTag[match[1]] == "SPECIFIC") {
- delayedTags[match[1]] = match[2];
- } else {
- xs << xml::StartTag(toDocBookTag[match[1]]);
- xs << from_utf8(match[2].str());
- xs << xml::EndTag(toDocBookTag[match[1]]);
}
}