1

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 は実行されるプログラムではありません - それは単なる文字列です。

4

1 に答える 1

2

それらをQStringListとして処理しないのはなぜですか?

QString::split(...)メソッドを使用して、それをトークン (文字列、空白で区切られたもの) に分割することができます。

  • 各文字列の最初の文字がダッシュ (またはその他のチェック) であるかどうかを確認し、それを削除します (または必要な操作を行います)。

  • 最初の文字列を削除します(つまり、表示した実行可能ファイルへのパス)

于 2013-02-02T15:32:25.100 に答える