Verwenden preg_match() zu finden, start/Stopp-Positionen, die substring-matching-Muster
Möchte ich zum kopieren eines Teilstrings aus einem string mit PHP.
Die regex für das erste Muster ist /\d\|\d\w0:/
Die regex für das zweite Muster ist /\d\w\w\d+:\s-\s:/
Ist es möglich, die Kombination preg_match
mit strpos
um die genauen Positionen von Anfang bis Ende und kopieren Sie es dann mit:
substr( $string, $firstPos,$secPos ) ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich bin mir nicht sicher, aber vielleicht könnten Sie preg_split für dass wie diese:
Wenn Sie mit dem vierten parameter von
preg_match()
Sie können auch diePREG_OFFSET_CAPTURE
flag zu lassen, die Funktion der offset der übereinstimmenden Zeichenfolge. So sollte es keine Notwendigkeit, Sie zu kombinierenpreg_match()
undstrpos()
.http://php.net/manual/function.preg-match.php
Sicher.
Oder Sie kombinieren könnte, die Muster in ein neues super-fantastisch-magisch, mit dem Inhalte zwischen Ihnen (durch die Behauptung, dass das Präfix tritt unmittelbar vor dem übereinstimmenden Teilstring, und das suffix tritt unmittelbar nach dem es).
(Außer: Sie werden wahrscheinlich wollen, verwenden Sie die
s
modifier, oder etwas anderes als.
wenn Ihre substring wird sich über mehrere Zeilen erstrecken.)Das Dritte argument preg_match ist ein output-parameter sammelt Ihr erfasst, d.h. die tatsächlichen Zeichenfolgen, die aufeinander abgestimmt sind. Verwenden Sie diejenigen, die zu füttern Ihre strpos. Strpos nicht akzeptieren, reguläre Ausdrücke, aber die erfasst werden, enthalten die tatsächlichen übereinstimmenden text, der enthalten ist in Ihrem string. Zu tun erfasst, verwenden Sie die Klammern.
Beispiel (habe nicht versucht, aber es geht um die Idee):