我正在为Steam创建一个聊天机器人,用户可以输入!tell jimmy message
等命令。我希望它的行为与使用带参数的命令行一样运行。因此,引号之间的文本计为一个参数,文本之间的空格是sperate arguments。
以下是一些例子:
!tell jimmy message =
名称 jimmy,消息:消息
!tell jimmy "message" =
名称 jimmy,消息:消息
!tell jimmy "Hello Jimmy!" =
名称: jimmy, msg:您好Jimmy!
!tell "jimmy" hey =
名称: jimmy, msg:嘿
这是否可以使用正则表达式和捕获组,如果可以,怎么做?
答案 0 :(得分:0)
模式!tell ("[^"]*"|[^ ]+) ("[^"]*"|[^=]+) =
,您首先匹配!tell
,然后匹配两个引号"[^"]*"
之间的字符串或直到空格[^ ]+
。这同样适用于消息。