PHP: preg_replace

Hallo,

eigentlich ganz einfach.
Ich möchte, dass wenn die Zeichenkette >>[0-9] gefunden wird ein Link erstellt wird der folgendermaßen aussieht:

>>$[0-9]

Zum Beispiel schreibt jemand:

>>77 Dies ist kein langer Text aber >>544 er hat dafür keinen Sinn.

Soll werden:

>>77 Dies ist kein langer Text usw.

Leider habe ich bisher noch nichts anständiges finden können. Wie die Funktion funktioniert ist mir klar, jedoch bräuchte ich Hilfe bei der Auszeichnung von der gesuchten Zeichenkette. Könnt ihr mir das erklären?

(Bitte nicht sofort die Lösung sagen da ich gerne selbst drauf kommen möchte)

Einen Lösungsvorschlag hätte ich mit preg_match.
Das Beispiel erkennt eine IP im Text:

preg_match("/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/",$text,$return);

Hallo, danke für deine Antwort.
Was ich bisher weiss ist, dass am Anfang und am Ende ein Delimiter gesetzt werden muss. Bin bisher so weit gekommen:

preg_replace("/>>[0-9]/", „$1$2“, $text);

Ich glaub ich habs hinbekommen :smile:
preg_replace
(
„/(>&gt:wink:([0-9]*)/is“,
$1$2“,
$text
);

Hallo,

das ist eigentlich nicht so schwer.
Zum Testen der Ausdrücke empfehle ich: http://www.functions-online.com/preg_replace.html
und eine Seite zu den regulären Ausdrücken: http://www.danielfett.de/internet-und-opensource,art…

Dein $pattern muss mit einem Delimiter beginnen und enden z.B. %

[0-9] steht für eine Zahl von 0-9 z.B. 2
[0-9]{1,2} steht für ein oder zwei Zahlen von 0-9 direkt nacheinander z.B. 12

wenn du ein zeichen fest haben willst schreibst du es einfach normal.
%>>([0-9]{1,2}) %

die () Klammer bewirkt dass alles was in der Klammer steht in einer Variable gespeichert wird. $1 bei der 1. () $2 bei der 2. (), …

dein Replacement kann also so aussehen
>>$1

$1 wird dann durch das was bei ([0-9]{1,2}) gefunden wird ersetzt

ich kann leider nicht helfen. Sorry.