-2

在这里相当新手,我正在寻找一种有效的方法来使用 split() 在某个单词之后拆分字符串。我正在使用python中的Csound API开发语音控制过滤器,并说我的输入命令是“将截止设置为440”,我想在“to”这个词之后分割字符串,基本上意味着我可以说不管我喜欢这个命令,它仍然会找到我正在寻找的频率,我希望这是有道理的。所以目前,我的代码是

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

我的输出是

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

问题是“截止”中的“到”,我知道我可以通过将截止更改为频率来解决这个问题,但它似乎太容易让步了。我怀疑有一种方法可以用正则表达式来做到这一点,但我很容易出错,任何建议都会非常有帮助,我希望我的帖子遵守所有的指导方针和东西,对 Stack Overflow 来说还是很新的。

4

2 回答 2

3

简单的方法是在单词周围用空格分隔to

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

返回

['set cutoff', '440']

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

于 2018-03-29T17:12:53.547 回答
0

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

import re

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

返回

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

来自jamylak在这篇文章中:基于正则表达式的拆分字符串

于 2018-03-29T17:26:25.977 回答