Regex 正则表达式将文本解析为参数

Regex 正则表达式将文本解析为参数,regex,arguments,command-line-arguments,Regex,Arguments,Command Line Arguments,我正在为Steam创建一个聊天机器人,用户可以键入命令,如!告诉吉米消息。我希望它的行为与使用带参数的命令行运行时完全相同。所以引号之间的文本作为一个参数计算,而文本之间的空格作为特殊参数 以下是一些例子: !告诉吉米消息=姓名:吉米,消息:消息 !告诉吉米“消息”=姓名:吉米,消息:消息 !告诉吉米“你好,吉米!”=姓名:吉米,消息:你好,吉米 !告诉“吉米”嘿=姓名:吉米,消息:嘿 对于正则表达式和捕获组,这可能吗?如果可能,如何实现?模式!告诉(“[^”]*”[^]+)(“[^”]*“

我正在为Steam创建一个聊天机器人,用户可以键入命令,如
!告诉吉米消息
。我希望它的行为与使用带参数的命令行运行时完全相同。所以引号之间的文本作为一个参数计算,而文本之间的空格作为特殊参数

以下是一些例子:

  • !告诉吉米消息=
    姓名:吉米,消息:消息

  • !告诉吉米“消息”=
    姓名:吉米,消息:消息

  • !告诉吉米“你好,吉米!”=
    姓名:吉米,消息:你好,吉米

  • !告诉“吉米”嘿=
    姓名:吉米,消息:


对于正则表达式和捕获组,这可能吗?如果可能,如何实现?

模式
!告诉(“[^”]*”[^]+)(“[^”]*“[^=]+)=
您第一次匹配的位置
!告诉
,然后你要么在两个引号之间匹配一个字符串,“[^”]*”,要么直到一个空格
[^]+
。这同样适用于消息。

“(.*?”)(\w+)似乎做了一些类似于我正在寻找的事情,但捕获组不一致。这似乎工作得很好!我会尝试使用它,看看我会怎么做