Я хотел бы отфильтровать команду, как с 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 / исполняемый файл — это не исполняемая программа, а просто строка.
Почему бы вам не обращаться с ними как QStringList?
Ты можешь использовать QString :: сплит (…) метод, чтобы разделить его на токены (строки, разделенные пробелами), и тогда это будет тривиально
проверьте, что первый символ каждой строки является тире (или
любую другую проверку) и удалите ее (или выполните любую операцию, которую вы хотите).
удалить первую строку (а именно путь к исполняемому файлу, как вы показали)
Других решений пока нет …