【发布时间】:2026-01-10 20:55:01
【问题描述】:
我有一个 Qt5/C++ 程序,它接收一个包含程序名称和可能参数的 QString。我需要将此 QString 拆分为多个字符串。例如,字符串
/tmp/myprog --param1 --param2=2 --param3="1 2 3" -p 4
应该拆分成:
list[0]=/tmp/myprog
list[1]=--param1
list[2]=--param2=2
list[3]=--param3="1 2 3"
list[4]=-p 4
我的第一个想法是在空格上使用“split”方法,但这会破坏引用的 param3。同样,参数 4 在 -p 和 4 之间也没有 : 或 =。
有没有简单的方法来做到这一点?我怀疑 -p 4 不可能轻易拆分,因为无法知道以下两项是否在一起。
但是是否有拆分/正则表达式/其他方式来拆分上述内容? (如果我们忽略 -p 4 可能吗?)
更新:
相同的函数可以在没有--param 或-p 的情况下拆分字符串吗?所以一串
abc "a a" "b b b" c
会变成
list[0]=abc
list[1]="a a"
list[2]="b b b"
list[3]=c
【问题讨论】:
-
也许你可以在这里参与
QCommandLineParser?