在一次使用一个单词而不是另一个使用时拆分字符串

Split string on one use of a word and not the other

我是新手,我正在寻找一种使用 split() 在特定单词后拆分字符串的有效方法。 我正在使用 python 中的 Csound API 开发语音控制过滤器,假设我的输入命令是 "Set cutoff to 440",我想在 [=19] 之后拆分字符串=],基本上意味着我可以说出我喜欢的命令,它仍然会找到我正在寻找的频率,我希望这是有道理的。 所以目前,我的代码是

string = "set cutoff to 440"
split = string.split("to")
print(split)

我的输出是

['set', 'cu', 'ff', '440']

问题是 'cutoff' 中的 'to',我知道我可以通过将截止频率更改为频率来解决这个问题,但似乎太容易让步了。我怀疑有一种方法可以用正则表达式来做到这一点,但我很容易出错,任何建议都会很有帮助,我希望我的 post 遵守所有准则和内容,对 Stack Overflow 很陌生.

这样做的简单方法是用单词周围的空格分隔 to

string = "set cutoff to 440"
split = string.split(" to ")
print(split)

returns

['set cutoff', '440']

使用正则表达式这样做比简单地拆分被空格包围的单词效率低得多

如果您出于其他原因想使用正则表达式,请按以下步骤操作:您可以找到所有 non-whitespace 个字符:

import re

string = "set cutoff to 440"
split = re.findall(r'\S+',string)
print(split)

returns

['set', 'cutoff', 'to', '440']

来自 jamylak on this post: Split string based on a regular expression