Вы можете использовать regxes для разделения:
Вы должны замаскировать литерал '.'
в вашем шаблоне - иначе '.'
обозначает что-либо.Вы можете использовать не группировку (?:....)
, чтобы добавить необязательный шаблон, если вы присвоите ему ?
(== 0 или 1 вхождение):
import re
aa = "may_be_this.is_the_string"
print(re.split(r'this\.',aa)) # 'this' and literal '.'
bb = "may_be_this_also.is_the_string"
print(re.split(r'this(?:_also)?\.',bb)) # 'this' and optional '_also' and literal '.'
Выход:
['may_be_', 'is_the_string']
['may_be_', 'is_the_string']
Использование '[_also]*'
позволяет использовать 0..n всех символов внутри [...] - вероятно, не то, что вы хотите.
Использование необработанных строк - хорошая привычка для определения шаблонов регулярных выражений.
Возможно, вы захотите прочитать regex-info - этомного, но охватывает основы.Для проверки регулярных выражений я хотел бы также подтвердить http://www.regex101.com - он имеет диалект Python и объясняет регулярные выражения в виде открытого текста.