Bonjour,
désolé pour ce titre.

Voici mon problème : je voudrais éclater la chaîne
"Un premier test : ¨mefs et ¨mef.Encore des ¨mefs..."
sous la forme
["Un premier test : ", "¨mefs", " et ", "¨mef", ".Encore des ", "¨mefs", "..."].

J'ai fait le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#! /usr/bin/env python3
 
import re
 
PATTERN = re.compile("¨\w+")
 
def splitForReplace(text):
    textSplitted = []
 
    for onePieceWithNoAbrev in PATTERN.split(text):
        start = text.find(onePieceWithNoAbrev)
        end = start + len(onePieceWithNoAbrev)
 
        before = text[:start] # One possible abreviation.
        if before:
            textSplitted.append(before)
        textSplitted.append(text[start:end])
 
        text = text[end:]
 
    if text:
        textSplitted.append(text)
 
    return textSplitted
 
 
if __name__ == '__main__':
    tests = [
              'Circulez, y a rien à voir !',
              'Un premier test : ¨mefs et ¨mef.Encore des ¨mefs...',
              'Un autre test :¨mef,¨Mef, ¨MEF, ¨MeF...',
            ]
 
    for oneTest in tests:
        print( '---',
               oneTest.strip(),
               splitForReplace(oneTest),
               sep = '\n' )
Ce code renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
---
Circulez, y a rien à voir !
['Circulez, y a rien à voir !']
---
Un premier test : ¨mefs et ¨mef.Encore des ¨mefs...
['Un premier test : ', '¨mefs', ' et ', '¨mef', '.Encore des ', '¨mefs', '...']
---
Un autre test :¨mef,¨Mef, ¨MEF, ¨MeF...
['Un autre test :', '¨mef', ',', '¨Mef', ', ', '¨MEF', ', ', '¨MeF', '...']
Tout ceci me permet de repérer les séquences ¨word pour faire des remplacements au cas par cas. Peut-être que les regex permettent directement cela...

Avez-vous d'autres méthodes à proposer ?