Zeichenketten mit unterschiedlichen werten ersetzen - interessant ;-)

Acriss

Gesperrt
Hi all ;)

ich schreibe einen parser für ein game
und da soll eine nervige meldung gelöscht bzw ersetzt werden.

und zwar folgende:

Runde 1

Der Angreifer schiesst 807 mal mit einer Gesamtstärke von 6031518
Die Schilde absorbierten 358300 und konnten sich auf 100.00% regenerieren.
Der Verteidiger erleidet einen Schaden von 5128238

Der Verteidiger schiesst 254 mal mit einer Gesamtstärke von 1070820
Die Schilde absorbierten 271286 und konnten sich auf 100.00% regenerieren.
Der Angreifer erleidet einen Schaden von 799534

so
dafür nutze ich ja z.b
str_ireplace

das problem:
Die Zahlem sind alles variiernde werte
ich hab schon über
PHP:
 $suchfeld4= array('/[0-9]+\\:[0-9]+\\:[0-9]+/');
gelesen
allerdings t das net, wenn ich das entsprechend verändere, also:

PHP:
$gefiltert = preg_replace('/Runde[0-9]+\\Der Angreifer schiesst
   [0-9]+\\ mal mit einer Gesamtstärke von [0-9]+\\ Die Schilde absorbierten
   [0-9]+\\ und konnten sich auf 100.00% regenerieren. Der Verteidiger erleidet einen
   Schaden von [0-9]+\\Der Verteidiger schiesst [0-9]+\\ mal mit einer Gesamtstärke von
   [0-9]+\\  Die Schilde absorbierten [0-9]+\\ und konnten sich auf 100.00% regenerieren.
   Der Angreifer erleidet einen Schaden von [0-9]+/', ' Runde... ', $_REQUEST['inputbox1']);

Weiß jemand hilfe?
 
[phpf]str_ireplace[/phpf] akzeptiert keine regulären Ausdrücke.

Dafür ist [phpf]preg_replace[/phpf] da.


Allerdings ist mir der Sinn deines Tuns nicht ganz klar...?
Willst du einfach alle Zahlen aus deinem Text rauslesen?

Oder den gesamten String löschen?
 
Hallo,
wie wäre's hiermit:
PHP:
<pre>
<?php
    $pattern = 'Runde ([0-9])(.*?)Der Angreifer erleidet einen Schaden von ([0-9]+)';

    $string = 'Text Zeile 1.
Runde 1

Der Angreifer schiesst 807 mal mit einer Gesamtstärke von 6031518
Die Schilde absorbierten 358300 und konnten sich auf 100.00% regenerieren.
Der Verteidiger erleidet einen Schaden von 5128238

Der Verteidiger schiesst 254 mal mit einer Gesamtstärke von 1070820
Die Schilde absorbierten 271286 und konnten sich auf 100.00% regenerieren.
Der Angreifer erleidet einen Schaden von 799534
Text Zeile 2.

Runde 10

Der Angreifer schiesst 1 mal mit einer Gesamtstärke von 6031518
Die Schilde absorbierten 234234 und konnten sich auf 10.00% regenerieren.
Der Verteidiger erleidet einen Schaden von 23424234

Der Verteidiger schiesst 43432 mal mit einer Gesamtstärke von 1070820
Die Schilde absorbierten 271286 und konnten sich auf 50.00% regenerieren.
Der Angreifer erleidet einen Schaden von 234234234234
Text Zeile 3';

    echo preg_replace('/'.$pattern.'/is', '', $string);
?>
</pre>
Eventuell ist der Reguläre Ausdruck etwas zu allgemein definiert, dass kann ich aber nicht beurteilen, musst du selber entscheiden. ;)

mfg
forsterm
 
[phpf]str_ireplace[/phpf] akzeptiert keine regulären Ausdrücke.

Dafür ist [phpf]preg_replace[/phpf] da.


Allerdings ist mir der Sinn deines Tuns nicht ganz klar...?
Willst du einfach alle Zahlen aus deinem Text rauslesen?

Oder den gesamten String löschen?

ich möchte alles löschen
aber wie du siehst

^^
preg_replace hab ich im 2ten bsp genuzt ;)
@forsterm: ich testes mal eben
 
Zurück