Разделить строку на одно использование слова, а не на другое

Довольно новичок здесь, я ищу эффективный способ использовать split() для разделения строки после определенного слова. Я работаю над голосовым фильтром, использующим Csound API в python, и говорю, что моя команда ввода - "Установить отсечение на 440", я хотел бы разбить строку после слова "to", в основном это означает, что я могу сказать как бы мне ни нравилась команда, она все равно найдет нужную мне частоту, надеюсь, в этом есть смысл. Так что на данный момент мой код для этого

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

и мой вывод

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

Проблема состоит в том, чтобы "в" в "отсечке", я знаю, что мог бы это исправить, просто изменив отсечку на частоту, но кажется, что это слишком легко. Я подозреваю, что есть способ сделать это с помощью регулярных выражений, но я могу легко ошибаться, любой совет будет очень полезным, и я надеюсь, что мой пост придерживается всех рекомендаций и прочего, я довольно новичок в Stack Overflow.

2 ответа

Решение

Простой способ сделать это - разделить пробелами вокруг слова to

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

возвращается

['set cutoff', '440']

использование регулярных выражений для этого гораздо менее эффективно, чем простое разбиение слова в окружении пробелов

Если вы хотите использовать регулярные выражения по другим причинам, вот как это сделать: вы можете найти все непробельные символы:

import re

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

возвращается

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

от jamylak на этот пост: Разделить строку на основе регулярного выражения

Другие вопросы по тегам