Вы пробовали с помощью регулярных выражений?
import re
def main():
test = "? i.iaaa.iaaa aii.aai.iaaa ia.iiii.i aiai.aii.iaaa aii.iiii.i aiai.iaaa.i i.i aii.iiii.i ia.aai.i aii.iiii.i aii.aai.iaaa aiii.ii.iaaa , aiii.iiii.i aiii.iiai.i aiii.iiai.i i.ii.iaaa i.i"
rgx = r"^(\?)|(?:i|a)+|(\s+)"
result = re.finditer(rgx, test, re.MULTILINE)
for matchNum, match in enumerate(result, start=1):
print("["+str(matchNum)+"] = " + match.group() + ",")
main()
Тогда результат:
[1] = ?, [2] = , [3] = i, [4] = iaaa, [5] = iaaa, [6] = , [7] = aii, [8] = aai, [9] = iaaa, [10] = , [11] = ia, [12] = iiii, [13] = i, [14] = , [15] = aiai, [16] = aii, [17] = iaaa, [18] = , [19] = aii, [20] = iiii, [21] = i, [22] = , [23] = aiai, [24] = iaaa, [25] = i, [26] = , [27] = i, [28] = i, [29] = , [30] = aii, [31] = iiii, [32] = i, [33] = , [34] = ia, [35] = aai, [36] = i, [37] = , [38] = aii, [39] = iiii, [40] = i, [41] = , [42] = aii, [43] = aai, [44] = iaaa, [45] = , [46] = aiii, [47] = ii, [48] = iaaa, [49] = , [50] = , [51] = aiii, [52] = iiii, [53] = i, [54] = , [55] = aiii, [56] = iiai, [57] = i, [58] = , [59] = aiii, [60] = iiai, [61] = i, [62] = , [63] = i, [64] = ii, [65] = iaaa, [66] = , [67] = i, [68] = i
Вы также можете использовать этот инструмент regex101 для построения регулярное выражение, как вам нужно.