Ich versuche, das folgende mit einem Python Regex zu analysieren.Wie erstellt man mehrzeilige Python-Regex zum Parsen gehen Importe
import (
"github.com/user/qrt"
"fmt"
"github.com/user/zyx"
)
import "abcdef"
import "abzdef"
Idealfall eine einzelne Regex ergäbe:
alles innerhalb der Pars als eine einzige Gruppe und jedes Element in den einzelnen Zeile Import-Anweisungen als Gruppe
Hier ist, was ich für jede Import-Anweisung habe separat. (Siehe Bit rechts von Kolon ..
# import (...) : r'import\s*(\()(.*?)(\))'
# import ".." : r'import\s*(\")(.*?)(\")'
Ich denke ich so etwas wie unten verwenden könnte gegen die erste Gruppe passen Entscheidung zu behandeln, wenn ich das Parsen ein() Imports oder einen „“ Import. ((id) ja |? nein)? Spiel 'ja', wenn Gruppe 'id' angepasst, sonst 'nein'
Ich mag diese, wurde aber für eine einzelne Regex der Hoffnung, wenn es möglich ist. – bdbaddog
Es ist nicht möglich mit Regex. Sie benötigen einen http://en.wikipedia.org/wiki/Recursive_descent_parser, welcher Art es ist. Überprüfen Sie http://stackoverflow.com/questions/5060659/python-regexes-how-to-access-multiple-matches-of-a-group. – totoro
@bdbaddog Hat einen verrückten Schnitt gemacht :-) – totoro