Wie passen Sie eine Wiederholungsgruppe innerhalb einer Wiederholungsgruppe?Regex: Get verschachtelte Wiederholungsgruppe
Zum Beispiel alle gültig Datensätze in einer Log-Datei bekommen:
---:
TS : 150602000006S
EC1: 02429.523
EC2: 05604.110
---
---:
TS : 150603000006S
---:
TS : 150603000006S
EP1: 3333.523
---
Wie die folgenden Begegnungen:
[
[
['TS ', '150602000006S'],
['EC1', '02429.523'],
['EC2', '05604.110']
],
[
['TS', '150603000006S'],
['EP1', '3333.523']
]
]
die einzelnen Datensatz Eigenschaften Abrufen können mit (See on regex101) erfolgen:
([A-Z0-9 ]{3,3}): ([0-9SW]+)?([0-9\.SW]{3,})\n
Allerdings Beim Platzieren von Regex in einer Datensatzgruppe (like seen here) werden die Eigenschaftsgruppen nicht mehr übereinstimmend angezeigt.
Wie wird das richtig gemacht?
Wahrscheinlich nicht mit Regex ... – Mena
@Mena Warum wäre das nicht möglich? – JasperJ
Ich sage nicht, dass es kategorisch nicht möglich ist, aber im Allgemeinen sind reguläre Ausdrücke gut für die Analyse von Text nicht kontextuell zu einer bestimmten Grammatik (z. B. Regex gegen Markup ist im Allgemeinen eine sehr schlechte Idee). Wenn Sie verschachtelte Elemente und Regeln für die Verschachtelung haben, werden reguläre Ausdrücke sehr bald sehr schwerfällig. Angenommen, Sie finden den richtigen Weg, um Ihre hierarchischen Datensätze anzupassen, wird der Ausdruck selbst lang, wahrscheinlich unlesbar und sehr schwer zu pflegen sein. In der Regel möchten Sie hierfür einen eigenen Parser implementieren. – Mena