我必须将从终端获取的命令解析为字符串,以便我的底层函数可以读取它。解析函数应该返回一个元组,包含命令,这是第一个单词,参数是所有其他单词的列表,没有空格,不可读字符等。
这种行为的一个例子是: 输入:“用 15 替换所有值” 变量 full_command: ["replace", "all", "values", "with", "15"]
我尝试消除前面和后面的所有空白,然后使用 re.split() 函数将字符串拆分为字符串列表
这就是可憎之物的样子
full_command = re.split("\W+", re.sub("\s+$", '', re.sub("^\s+", '', cmd)))
但这看起来并不像正则表达式应该看起来的那样,它似乎只是模拟普通字符串命令的错误尝试
full_command 中的预期结果应该是字符串 cmd 中的所有单词的列表,它起作用了,它看起来不像我认为的那样,而且真的感觉不对。
请您参考如下方法:
试试这段代码。
full_command = re.split(r"^\W+|\W+|\W+$", cmd)[1:-1]
编辑
full_command = re.findall(r"\w+", cmd)
