Поиск строки из файла с известным размером и некоторыми индексными символами - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу найти строки из файла, который соответствует определенным условиям. Я знаю размер строки и некоторую позицию символа. Так что, насколько мне известно, лучшее возможное решение - создать регулярное выражение и найти строку в файле.

Я создал приведенное ниже регулярное выражение, которое ищет все возможные символы:

[a-zA-Z0-9#&()\.\-/=?%@!\^\$\\ \.\*\+\?\(\)\[\]\{\}\|]

ниже кода, который я написал с использованием приведенного выше регулярного выражения:

int main()
{
    std::ifstream t("file.txt");
    std::string str((std::istreambuf_iterator<char(t)),std::istreambuf_iterator<char>());

    smatch m;
    string allchar = "[a-zA-Z0-9#&()\.\-/=?%@!\^\$\\ \.\*\+\?\(\)\[\]\{\}\|]";

    //String of size five, have S at 0th index and B at last index
    string search = "S"+ allchar + allchar + allchar +"B";

    regex r(search);
    regex_search(str, m, r);

    for (auto x : m)
    {
        cout << x << endl;
    }
}

Но используяКод выше я не получаю правильные ответы, которые я должен получить. Я думаю, что делаю какую-то ошибку, создавая всю строку символов, но не могу определить свою ошибку.

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