我想过滤一个像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 / executable不是程序执行的 - 它只是一个字符串。
答案 0 :(得分:2)
为什么不将它们作为 QStringList 处理?
您可以使用 QString :: split(...)方法将其拆分为标记(字符串,空格分隔),然后它将是微不足道的
检查每个字符串的第一个字符是否为破折号(或 无论其他检查)并删除它(或做任何你想要的操作)。
删除第一个字符串(即显示的可执行文件的路径)