Bonjour,
le code suivant contient un début de regex pour chercher des regexs à la sauce Python.

Cela ne fonctionne pas. J'ai mis des tests montrant les problèmes avec la regex utilisée.

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
39
40
41
42
43
44
45
#! /usr/bin/env python3
 
# Source : http://www.developpez.net/forums/d1173336/autres-langages/python-zope/general-python/regex-recuperer-contenu-entre-guillemets-possibilite-dutiliser/#post6443734
 
import re
 
# ``(...)`` sert à grouper des directives.
# ``.`` indique n'importe quel caractère.
# ``.*`` indique une suite éventuellement vide 
# de caractères quelconques.
# ``?<!...`` demande de vérifier que le caractère
# en cours d'analyse n'est pas précédé de ...
PATTERN = re.compile(r'"(.*?)(?<!\\)"')
 
someTexts = [
    r'Un petit texte et "autre chose \"entre des guillemets\" pour tester"' \
    + ' et voilà c\'est fini...',
        # OK
    r'Un petit texte et "et attention à ""r...',
        # OK
    r'Un petit texte et "et attention à \\"r...',
        # PAS OK : Chaîne bien fermée mais ce n'est pas vu
        # car ``\"`` est échapée alors que ``\\`` c'est qu'il est.
    r'Un petit texte et "et attention à \"r...',
        # OK
    r'Un petit texte et "et attention à \\""r...',
        # PAS OK : Chaîne fermée au mauvais endroit
        # car ``\"`` est échapée alors que ``\\`` c'est qu'il est.
    r'Un petit texte et "et attention à \""r...',
        # OK
]
 
for oneText in someTexts:
    search = re.search(PATTERN, oneText)
 
    print('---', oneText, sep="\n")
 
    if search:
        s = search.start()
        e = search.end()
 
        print(oneText[:s], oneText[s:e], oneText[e:], sep = ">>>")
 
    else:
        print('<< NOTHING FOUND ! >>')