У меня несколько сложное имя файла после шаблона s[num][alpha1][alpha2].ext
, который я пытаюсь сделать tokenize. Лексиконы, из которых рисуются альфа1 и альфа2, содержатся в двух списках.Сплит строки Python с использованием нескольких разделителей
Я нашел вопрос в https://stackoverflow.com/questions/4998629/python-split-string-with-multiple-delimiters полезным, но это не помогло решить мою проблему.
Между [num]
и [alpha1]
, число предшествует буква (довольно легко регулярное выражение), но между [alpha1]
и [alpha2]
, я расщеплению между двумя словами.
Учитывая имя файла s13LoremIpsum.ext
, например, я бы хотел ("s", "13", "Lorem", "Ipsum")
.
Что было бы лучшим способом достичь этого?
Обратите внимание, что в данном конкретном случае, [alpha2]
это единственное письмо, но я заинтересован в решениях для как этот случай и общий случай, когда [alpha1]
и [alpha2]
слова произвольной длины. Отметим также, что общий случай может ввести двусмысленность, если существует более одного возможного расщепления путем объединения слов из соответствующих лексиконов, например.
alpha1 = ["a", "ab"]
alpha2 = ["bc", "c"]
# How will we split?
splitString == ("a", "bc")
# --OR--
splitString == ("ab", "c")
Решение этой неоднозначности является вторичной проблемой.
ли alpha1 и альфа2 всегда начинаются с заглавной буквыписьмо? И у них когда-либо есть заглавные буквы внутри? Есть ли когда-нибудь альфа3? – brandonscript
Являются ли 'alpha1' и' alpha2' для соответствия заданным значениям? Ваш другой вопрос подразумевает, что они это сделают. –
В конкретном случае, как альфа1, так и альфа2 являются полностью-капитальными. В общем случае любые слова в любом случае могут быть любым сочетанием капитала и строчной буквы. – Walker