Разделить строку на одно использование слова, а не на другое
Довольно новичок здесь, я ищу эффективный способ использовать 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 на этот пост: Разделить строку на основе регулярного выражения