我正在尝试匹配一个正则表达式
hello ?color red ?name Yuri ? ? to the forum
将输出
?color red ?name Yuri ? ?
请注意,命令的开头始终为 (? + 至少一个字母),命令的结尾始终为 (? + 空格)
我尝试使用以下正则表达式:
/\?[^ ](.)*\?/g
但是,如果我们有这个输入:
hello ?name Yuri ? welcome to ?forum Python ? It's awesome!
它匹配:
?name Yuri ? welcome to ?forum Python ?
但是,它应该单独匹配(即[?name Yuri ? , ?forum Python ?]
)
请帮忙!同样,命令总是以 ?+letter 开头并以 ?+whitespace 结尾
更新 1:
但是,输出是 ['?color red ?name Yuri ? '] 它应该是 ['?color red ?name Yuri ? ? '](两个问号)注意嵌套可以是无限的,即 ?name ?name ?color ?color ? ? ? ?
所以这个想法是有 ?command ?表示函数调用,假设我们有“?add 2 ?multiply 3 3 ?5 ?” -> 它应该执行“?multiply 3 3 ?” 它返回 9,然后它执行“?添加 2 9(我们从返回中得到)5?” 加起来 16
更新 2:
Avinash 在 UPDATE 2 中的回答非常棒!