seth_not@home: RegEx zweiwort Kombinationen

Beitrag lesen

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