PHP/REGEX: Holen Sie sich eine Zeichenfolge innerhalb der Klammern
Dies ist ein wirklich einfaches problem, aber ich konnte keine Lösung finden, überall.
Ich werde versuchen, preg_match oder preg_match_all erhalten Sie eine Zeichenfolge aus, innerhalb von Klammern, aber ohne die Klammern.
So weit, mein Ausdruck sieht wie folgt aus:
\([A-Za-z0-9 ]+\)
und gibt das folgende Ergebnis zurück:
3(hohl highlight) 928-129 (<- original-string)
(hohl highlight) (<- Ergebnis)
Was ich will, ist die Zeichenfolge innerhalb der Runden Klammern, jedoch ohne die Klammern. Es würde dann so Aussehen:
hohl highlight
Könnte ich wahrscheinlich ersetzen Sie die Klammern, die danach mit str_replace oder so etwas, aber das scheint nicht zu sein eine sehr elegante Lösung für mich.
Was muss ich hinzufügen, damit die Klammern sind nicht im Ergebnis enthalten?
Danke für Eure Hilfe, Ihr seid Super, Jungs! 🙂
- Was Sie fordern Klammern sind eigentlich Klammern.
- Möglich, Duplikat der PHP: Beste Methode zum extrahieren von text innerhalb der Klammer?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nur zum hinzufügen von Runden Klammern, in Ergänzung zu Ihrem entkommen Klammer.
Dieser Ausgänge:
[0]
, das ist der Grund, warum$out[0]
enthält alles, sogar die Klammern, die Sie nicht wollen. Jeder()
erfassen, nun, erfasst - was auch immer zwischen Ihnen, und speichert Sie in sequentieller array-Indizes, d.h.[1]
,[2]
,[3]
usw. Zum Beispiel, wenn Ihr string ist "abc123def456" und dein regex ist/abc(\d+)(\w+)(\d)(\d+)/
, Ihr erfasst werden würde, wie so:[1]
= "123",[2]
= "def",[3]
= "4", und[4]
= "56".preg_match
undpreg_match_all
ist, dass die letztere, wie der name schon sagt, passen alle, so dass es ein array innerhalb des array:[1] = { "world", "is andrew", "845" }
.versuchen:
Ausgabe: