как искать регулярные выражения в C ++, затем обрабатывать, затем заменять - PullRequest
0 голосов
/ 22 апреля 2020

C ++ 11 предоставляет regex_search и regex_replace, но я sh могу найти шаблоны, заключенные в скобки с набором тегов, а затем на основе этих тегов выполнить дальнейшую обработку сверх того, что может сделать regex.

Например, :

$mch(2,4,5,7$
$img(filename.jpg$
$vid(filename.mp4$
$mat3,4(2,4,6,1,2,3,4,5,1$

Распознать теги легко:

regex r(R"(\$.*\()(.*\$)";

проблема в том, чтобы искать, затем применить код, а затем заменить поиск. Самое элегантное решение, которое я придумал:

if (regex_searcH(line, m, r)) {
  if (m[1] == "$mch") {

  } else if (m[1] == "$img") {
    buildString(replace, "<img src='", m[1], "'/>");
  }
}

, а затем

line.replace(m.position(0), m.length(0), replace);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...