Um eine Teilzeichenkette abzugleichen zwischen den erste [
y zuletzt ]
können Sie verwenden
\[.*\] # Including open/close brackets
\[(.*)\] # Excluding open/close brackets (using a capturing group)
(?<=\[).*(?=\]) # Excluding open/close brackets (using lookarounds)
Siehe eine Regex-Demo et un regex demo #2 .
Verwenden Sie die folgenden Ausdrücke, um Zeichenfolgen abzugleichen zwischen den am nächsten eckige Klammern :
-
Einschließlich der Klammern:
-
\[[^][]*]
- PCRE, Python re
/ regex
.NET, Golang, POSIX (grep, sed, bash)
-
\[[^\][]*]
- ECMAScript (JavaScript, C++ std::regex
VBA RegExp
)
-
\[[^\]\[]*]
- Java, ICU regex
-
\[[^\]\[]*\]
- Onigmo (Ruby, erfordert das Escapen von Klammern überall)
-
Ohne die Klammern:
-
(?<=\[)[^][]*(?=])
- PCRE, Python re
/ regex
.NET (C#, etc.), JGSoft Software
-
\[([^][]*)]
- Bash , Golang - erfassen den Inhalt zwischen den eckigen Klammern mit einem Paar von nicht ausgeschnittenen Klammern, siehe auch unten
-
\[([^\][]*)]
- JavaScript , C++ std::regex
, VBA RegExp
-
(?<=\[)[^\]\[]*(?=])
- Java-Regex, ICU (R stringr
)
-
(?<=\[)[^\]\[]*(?=\])
- Onigmo (Ruby, erfordert das Escapen von Klammern überall)
NOTA : *
mit 0 oder mehr Zeichen übereinstimmt, verwenden Sie +
auf 1 oder mehr übereinstimmen, um leere Zeichenfolgen in der resultierenden Liste/Aufstellung zu vermeiden.
Wenn beide Lookaround-Unterstützungen zur Verfügung stehen, stützen sich die oben genannten Lösungen auf sie, um die führende/nachlaufende Auf/Zu-Klammer auszuschließen. Andernfalls sollten Sie sich auf Erfassungsgruppen verlassen (Links zu den gängigsten Lösungen in einigen Sprachen wurden bereitgestellt).
Wenn Sie eine Übereinstimmung finden müssen verschachtelte Klammern können Sie die Lösungen in der Regulärer Ausdruck für die Übereinstimmung von ausgeglichenen Klammern und ersetzen Sie die runden Klammern durch die eckigen, um die erforderliche Funktionalität zu erhalten. Sie sollten Erfassungsgruppen verwenden, um auf den Inhalt zuzugreifen, wobei offene/geschlossene Klammern ausgeschlossen sind: