Hi @ll
ein Lösungsweg für dein Rex wäre
Code:
(d+) ((d+)-(d+)-(d+))
schaut dann so aus:
PHP-Code:
preg_match('/(d+) ((d+)-(d+)-(d+))/', $text, $match);
Liefert folgendes Array
Code:
Array
(
[0] => 27 (11-4-12)
[1] => 27
[2] => 11
[3] => 4
[4] => 12
)
Zur Erklärung
Array[0] beinhaltet alles was gefunden wurde (den gesamten Teil-String).
Array[1 ... 4] die einzelnen Teile des Suchpatters
Wie definierst du einen Teil
alles was du in Klammern setzt ist ein Teil
zb
(d*)
das
d bedeutet das es eine Zahl sein muss (0-9)
das Zeichen dahinter gibt an wie oft es vorkommen kann, wenn keines dahinter steht darf es nur einmal vorkommen!
Code:
? ...... genau 1 oder kein Zeichen
* ...... keine oder beliebig viele Zeichen
+ ...... genau ein oder beliebig viele Zeichen
{x} .... genau x mal
{x,y} .. mindestens x, aber maximal y Zeichen
{x,} ... mindestens x, oder mehr
wenn du noch mehr erklärungen brauchst, melde dich einfach
@Ben20
Die Idee, ist nicht schlecht, aber etwas umständlich.
Zusätzlich ist
hier der Rex schneller
Weiters ist so, das du bei dieser Lösung, den ersten Wert direkt hast und die restlichen in einem Array.
Andere Idee:
PHP-Code:
$my_str = "27 (11-4-12)";
$my_str = str_replace(")","",str_replace(" (","-",$my_str));
$my_str_arr = explode("-",$my_str);
print_r($my_str_arr);