Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Zeichen in String einfügen / ersetzen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Zeichen in String einfügen / ersetzen


 
archi0815
04-10-2007, 03:18 
 
Hallo Forum,

Ich benötige eure Hilfe bei folgendem Problem:

Also ich habe eine Zeichenkette string, ähnlich dieser hier:

X[6]G[8]F[D[4]H[22]]

quasi wie eine verschachtelte Struktur, welche durch Klammern erklärt ist.

Nun möchte ich gerne folgendes erreichen:

[X6][G8][F[D4][H22]]

sprich, wenn auf einen Buchstaben eine öffnende Klammer folgt, so müssen diese beiden Zeichen vertauscht werden.

folgender Code funktioniert aber leider nicht, k.A. warum...?


$preg = "([0-9])";
$preg2 = "([A-Z])";

for($i=0;$i<strlen($string);$i++)
{
if(preg_match($preg2,$string[$i]))
{
$temp.=$string[$i+1];
$temp.=$string[$i];
$zk_temp_1 = substr_replace($string,$temp,$i);
}
$temp = "";

}

was mache ich falsch?

vieleicht kann mir jmd weiterhelfen?

Benutze WAMP (Apache 2.X, php4, mysql 4, Win Server 2003)

Gruß

Micha

 
onemorenerd
04-10-2007, 03:48 
 
$string = preg_replace('/([A-Z])\[/', '[$1', $string);

 
archi0815
04-10-2007, 12:22 
 
Wow, das ging ja schnell, Vielen Dank, genau das was ich gesucht hatte...


naja, mit den regulären Ausdrücken hab ich's noch net so raus...

Viele Grüße

Micha

 
tontechniker
04-10-2007, 13:40 
 
// Pseudocode
while ( $pos = strpos ( $string, '[' ) ) {
$string [ $pos ] = $string [ $pos - 1 ];
$string [ $pos - 1 ] = '[';
}[ In diesem Fall sinnvoller oder?

 
onemorenerd
04-10-2007, 14:20 
 
@tontechniker: wenn auf einen Buchstaben eine öffnende Klammer folgt, so müssen diese beiden Zeichen vertauscht werden

 
tontechniker
04-10-2007, 19:31 
 
Stimmt, im Beispiel gibt es da soweit ich sehe aber keine Auswirkungen von daher ... (ansonsten prüft man halt das Zeichen vor der Fundstelle noch mit ord).


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:03 Uhr.