C ++ std :: regex не поддерживает предварительную обратную ссылку - PullRequest
0 голосов
/ 09 июля 2020

Я хочу соответствовать правилу, какое-то имя встречается как ABA, и A не должно равняться B. "allen_allen_allen" недействителен. at https://regexr.com/, я написал шаблон регулярного выражения ([a-z]+)_(?!\1)([a-z]+)_\1, и он отлично работает,

Но когда я пишу это на C ++, используйте std :: regex,

using namespace std;
#include <regex>
int main() {
    std::regex regex_test2("([a-z]+)_(?<!\\1)([a-z]+)_\\1");
    return 0;
}

Я получил следующую ошибку:

libc++abi.dylib: terminating with uncaught exception of type std::__1::regex_error: The expression contained an invalid back reference.

вот информация о моем компиляторе:

введите описание изображения здесь Есть ли способ исправить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...