surcharge de la classe string
Bonjour,
j'aimerais faire un truc qui me paraît réservé à l'élite pythonienne.
Voilà :
J'ai écrit un parseur de fichier texte ayant une syntaxe bien définie et je cherche à y retrouver des expressions particulières.
Pour y parvenir, je lis un fichier texte dans une string, et j'utilise des expressions régulières dans tous les sens plus toutes sortes de méthodes de la classe string (replace, split, join, etc.).
Quand j'ai isolé mon expression, je voudrais être capable de la situer dans la string d'entrée.
L'idée que j'ai est de créer une surcharge de la classe string qui à chaque caractère associe sa position.
Ensuite, tous les modifications de la chaîne doivent conserver les positions.
Du coup, à la fin, quand mon expression est extraite, je n'ai qu'à lire la position associée au premier caractère.
ex :
Code:
1 2 3 4 5 6 7
| s = 'spam and eggs'
# 0123456789012
# 111
s2 = s[9:] + s[:4]
# = 'eggsspam'
# 90120123
# 111 |
J'ai permuté des morceaux de chaîne, mais la position initiale des caractères est conservée.
C'est à dire que ma "super" string serait un interable de paires ( caractère , int ) sur lequel fonctionnent toutes les méthodes de la classe string.
Et donc ma question : suis-je obligé de tout réécrire ou y a-t-il un moyen super rusé de n'écrire que ce qui change ?
Je pense notamment à la classe char_trait de la classe std::string du c++.
A vous les experts !
merci