Regex 正则表达式将文本解析为参数
我正在为Steam创建一个聊天机器人,用户可以键入命令,如Regex 正则表达式将文本解析为参数,regex,arguments,command-line-arguments,Regex,Arguments,Command Line Arguments,我正在为Steam创建一个聊天机器人,用户可以键入命令,如!告诉吉米消息。我希望它的行为与使用带参数的命令行运行时完全相同。所以引号之间的文本作为一个参数计算,而文本之间的空格作为特殊参数 以下是一些例子: !告诉吉米消息=姓名:吉米,消息:消息 !告诉吉米“消息”=姓名:吉米,消息:消息 !告诉吉米“你好,吉米!”=姓名:吉米,消息:你好,吉米 !告诉“吉米”嘿=姓名:吉米,消息:嘿 对于正则表达式和捕获组,这可能吗?如果可能,如何实现?模式!告诉(“[^”]*”[^]+)(“[^”]*“
!告诉吉米消息
。我希望它的行为与使用带参数的命令行运行时完全相同。所以引号之间的文本作为一个参数计算,而文本之间的空格作为特殊参数
以下是一些例子:
姓名:吉米,消息:消息!告诉吉米消息=
姓名:吉米,消息:消息!告诉吉米“消息”=
姓名:吉米,消息:你好,吉米!告诉吉米“你好,吉米!”=
姓名:吉米,消息:嘿!告诉“吉米”嘿=
对于正则表达式和捕获组,这可能吗?如果可能,如何实现?模式
!告诉(“[^”]*”[^]+)(“[^”]*“[^=]+)=
您第一次匹配的位置!告诉
,然后你要么在两个引号之间匹配一个字符串,“[^”]*”,要么直到一个空格[^]+
。这同样适用于消息。“(.*?”)(\w+)似乎做了一些类似于我正在寻找的事情,但捕获组不一致。这似乎工作得很好!我会尝试使用它,看看我会怎么做