Фильтровать параметры программы с помощью QRegExp

Я хотел бы отфильтровать команду, как с QRegExp

/path/to/executable --long-parameter -s /path/which/has/a/space/and/a/dash/\ -end

Я пытаюсь удалить все параметры, которые начинаются с - и название программы (/path/to/executable)

QString str(...);
str.remove(QRegExp("^\\S*")).remove(QRegExp("\\s-\\S*")).trimmed();

Это удаляет параметры, но если есть /a/dash/\ -end, это будет рассматриваться как параметр, когда его следует оставить, поскольку пробелу предшествует обратный слеш. Есть ли способ справиться с этим?

/ path / to / исполняемый файл — это не исполняемая программа, а просто строка.

1

Решение

Почему бы вам не обращаться с ними как QStringList?

Ты можешь использовать QString :: сплит (…) метод, чтобы разделить его на токены (строки, разделенные пробелами), и тогда это будет тривиально

  • проверьте, что первый символ каждой строки является тире (или
    любую другую проверку) и удалите ее (или выполните любую операцию, которую вы хотите).

  • удалить первую строку (а именно путь к исполняемому файлу, как вы показали)

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]