Ich verstehe das Konzept des Schreibens regulärer Ausdrücke mit Capturing und nicht-einfangenden Gruppen.Brauchen Sie Informationen über Grok-Muster, die nicht einfangende Gruppe verwenden? (?:)
Ex:
a(b|c)
würde ab und ac
a(?:b|c)
würde passen ab und ac aber erfassen eine
entsprechen und erfassen Aber wie ist es nützlich, wenn ich ein neues Custom-Grok-Muster mache und was es bedeutet Verwenden Sie nicht erfassende Gruppen.
Mit Blick auf einige bestehende grok Muster wie unten für HOUR:
HOUR (?:2[0123]|[01]?[0-9])
Hier können wir die Stunden-Format anzeigen lassen und mit (2[0123]|[01]?[0-9])
. Wodurch wird das Grok-Muster hier nicht erfasst? Basierend auf welchen Parametern sollte ich entscheiden, diese (?:subex)
Ich weiß nicht, welche Sprache Sie verwenden, aber ich denke, das ist völlig falsch. 'a (b | c)' nimmt normalerweise 'b' oder' c' (abhängig davon, ob das Muster mit 'ab' oder' ac' übereinstimmt), und 'a (?: b | c)' fängt überhaupt nichts ein. Der Unterschied besteht in der Leistung; Warum etwas erfassen, wenn du es nicht tun musst? – ikegami
Re "* Hier können wir das Stundenformat mit' (2 [0123] | [01]? [0-9]) 'ebenso *" anpassen, keine Überraschung da; Capturing ändert nicht, was ein Muster entspricht. – ikegami