php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Bestimmten Teil aus String kopieren


 
Trubadix
01-03-2017, 13:06 
 
Hallo,

ich beschäftige mich gerade bissel mit PHP und hänge schon fest. Vielleicht könnt ihr mir helfen ,ich finde leider kein Schnipsel für mein Anliegen:

Ich habe:

$str = 'Ich sende dir A00B20'

Ich möchte:

AxxBxx in einen neuen String haben und im alten entfernt.

$str = 'Ich sende dir'
$str1 = 'AxxBxx'

Ich könnte naturlich immer die letzten 6 Zeichen kopieren und löschen aber leider werden sie nicht immer gesendet. Ich muss also irgendwie überprüfen ob AxxBxx im String ist. Wenn ja soll dies in einen neuen String und im alten entfernt werden.
Das einzige was immer gleich ist sind A & B, die Zahlen können zwischen 1-99 sein.

Eine Idee wie ein Anfänger das angehen kann?

 
Berni
02-03-2017, 10:07 
 
Schau dir mal die regular expression an (Google)

z.b PHP: preg_match - Manual (http://php.net/manual/de/function.preg-match.php)
oder bei uns unter Reguläre Ausdrücke PHP Tutorials nicht nur für Anfänger php-resource.de (http://www.php-resource.de/tutorials/tutorial,10,Regulaere-Ausdruecke,1.htm)

 
Trubadix
02-03-2017, 14:19 
 
Ahhhh. Danke Berni. Wenn ich das also richtig verstehe, habe ich den Buchstaben A und 2 Digit und B mit 2 Digit.

Wenn ich das richtig verstehe müsste dies zum gewünschten Ergebniss führen?

preg_match('*A\d{2}B\d{2}', $str, $str1);
$str = preg_replace('*A\d{2}B\d{2}', '', $str);

 
mermshaus
04-03-2017, 01:54 
 
Zum Beispiel so:

<?php

function f($str)
{
$lastSixBytes = substr($str, -6);

$value = null;

$pattern = '/\AA[0-9]{2}B[0-9]{2}\z/';

// Delimiters: <http://php.net/manual/en/regexp.reference.delimiters.php>
// `\A` und `\z`: <http://php.net/manual/en/regexp.reference.escape.php>

if (preg_match($pattern, $lastSixBytes) === 1) {
$value = $lastSixBytes;
$str = trim(substr($str, 0, -6));
}

return array($value, $str);
}

$str = 'Ich sende dir A00B20';

list($str1, $str) = f($str);

var_dump($str1, $str);

// string(6) "A00B20"
// string(13) "Ich sende dir"

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:42 Uhr.