Skip to main content
 首页 » 编程设计

python之有没有办法缩短这个正则表达式,使它看起来更像一个正则表达式

2024年11月01日46pengyingh

我必须将从终端获取的命令解析为字符串,以便我的底层函数可以读取它。解析函数应该返回一个元组,包含命令,这是第一个单词,参数是所有其他单词的列表,没有空格,不可读字符等。

这种行为的一个例子是: 输入:“用 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)