Sponsor-Board.de

Normale Version: PHP preg_split
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Servus,

ich müsste einen String auf eine Spezielle Art zerlegen, ich dachte preg_split sollte gehen, aber ich bräuchte einen passenden RegEx.

String:

Code:
§f§lMc§c§lAustria §n§aNow on §3§l1.5.1

Der String ist ein Beispiel, die Gemeinsamkeit ist das "§" mit dem Zeichen dahinter.

So bräuchte ich die Zerlegung:

PHP-Code:
Array(
    [
1] => "§f",
    [
2] => "§l",
    [
3] => "Mc",
    [
4] => "§c",
    [
5] => "§l",
    [
6] => "Austria ",
    [
7] => "§n",
    [
8] => "§a",
    [
9] => "Now on ",
    [
10] => "§3",
    [
11] => "§l",
    [
12] => "1.5.1"

Wie wäre es mit

PHP-Code:
explode("§""§f§lMc§c§lAustria §n§aNow on §3§l1.5.1"); 


[Link: Registrierung erforderlich]

PHP-Code:
Array
(
    [
0] => 
    [
1] => f
    
[2] => lMc
    
[3] => c
    
[4] => lAustria 
    
[5] => n
    
[6] => aNow on 
    
[7] => 3
    
[8] => l1.5.1


Sieht das für dich so aus wie das was ich oben geschrieben hab?

Luca schrieb:
Sieht das für dich so aus wie das was ich oben geschrieben hab?


Findest du das nun nicht etwas unhöflich?

Ich hätte nun auch an explode gedacht.

Es gibt nunmal nicht immer eine optimale Lösung für sein Problem, manchmal muss man eben basteln. Wenn man aber mal etwas hat was in etwa das gewünschte Ergebnis liefert, dann muss man halt mal sehen ob man es optimieren kann...

kannst du dir das nicht mit einem regulären ausdruck in etwas wie

x = Array(
[1] => "§f",
[2] => "§l",
[3] => "$Mc",
[4] => "§c",
[5] => "§l",
[6] => "$Austria ",
[7] => "§n",
[8] => "§a",
[9] => "$Now on ",
[10] => "§3",
[11] => "§l",
[12] => "$1.5.1"
)

zerlegen lassen, dann brauchst du ja nur sowas zu machen wie
x[2] = y(x[2]); x[5] = y(x[5]); x[8] = y(x[8]); ; x[11] = y(x[11]);

mit
function y(text) {
return substr(1, text);
}

fertig.

Storage-Base.de schrieb:

Luca schrieb:
Sieht das für dich so aus wie das was ich oben geschrieben hab?


Findest du das nun nicht etwas unhöflich?

Ich hätte nun auch an explode gedacht.


Nicht unhöflich gemein, aber ich habe auch als erstes an explode gedacht, das ist nun mal das erste woran man denkt...


simon_s schrieb:
kannst du dir das nicht mit einem regulären ausdruck in etwas wie

x = Array(
[1] => "§f",
[2] => "§l",
[3] => "$Mc",
[4] => "§c",
[5] => "§l",
[6] => "$Austria ",
[7] => "§n",
[8] => "§a",
[9] => "$Now on ",
[10] => "§3",
[11] => "§l",
[12] => "$1.5.1"
)

zerlegen lassen, dann brauchst du ja nur sowas zu machen wie
x[2] = y(x[2]); x[5] = y(x[5]); x[8] = y(x[8]); ; x[11] = y(x[11]);

mit
function y(text) {
return substr(1, text);
}

fertig.


Nein, das geht leider nicht. Aber mir ist gerade die Idee gekommen das ganze in einzelne Zeichen zu zerlegen (explode mit ""). Mal sehen ob's klappt...

//edit: explode mit "" ist natürlich quatsch, ich meinte mit str_split()

Referenz-URLs