使用QRegExp过滤程序参数

时间:2013-02-02 15:24:12

标签: c++ regex qt path 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 / executable不是程序执行的 - 它只是一个字符串。

1 个答案:

答案 0 :(得分:2)

为什么不将它们作为 QStringList 处理?

您可以使用 QString :: split(...)方法将其拆分为标记(字符串,空格分隔),然后它将是微不足道的

  • 检查每个字符串的第一个字符是否为破折号(或 无论其他检查)并删除它(或做任何你想要的操作)。

  • 删除第一个字符串(即显示的可执行文件的路径)