gudn tach!
Da gibt es nur ein kleines Problem. Als Ergebnis erhalte ich ein Array mit:
'eins zwei'
Ich möchte aber auch 'zwei drei'Dann müsste der RegEx ja von einem Treffer aus wieder "nach hinten" schauen - ich weiss nicht, ob das trivial umsetzbar ist.
<?php
$text = 'eins zwei drei vier fuenf';
preg_match_all('#(\b[a-z]+)(?=(\s[a-z]+\b))#ism', $text, $arr_text);
// bloss zur anzeige:
for($i=count($arr_text[1]); $i>=0; --$i)
echo $arr_text[1][$i],$arr_text[2][$i],"\n";
?>
Wäre es da nicht vielleicht sinnvoller, einfach nur zu splitten, so dass du ein Array mit Einzelworten erhältst - und dann beim Durchlaufen dieses Arrays jeweils Element i und Element i+1 zusammen zu betrachten ...?
u.u. ist beim splitten dennoch wieder den einsatz von regexp von vorteil:
also sowas wie
preg_split('/\b\s\b/', $str);
oder
preg_split('/(?<=[a-z])\s(?=[a-z])/', $str);
z.b. falls in "eins zwei, drei" das komma den fund "zwei drei" verhindern soll.
prost
seth