Miten saan merkkijonosta joka sisältää kirjaimia ja numeroita, erotettua sanat siten, että myös yksittäinen numero on sana?
esim. "seppä 23 kettu 1 2 3 juusto" merkkijonosta tulisi saada erotettua 7 sanaa.
$sanat = explode(" ", $merkkijono);
Tuo toimii hyvin jos merkkijono on tuon ylhäällä antamani kaltainen.
$merkkijono = "seppä 23 kettu 1 2 3 juusto"; $sanat = explode(" ", $merkkijono); echo count($sanat); //antaa oikean eli 7
Jos taas merkkijono on seuraavanlainen:
$merkkijono = "seppä 23 kettu 1 2 3 juusto"; $sanat = explode(" ", $merkkijono); echo count($sanat); //antaa myös ylimääräiset välit eli 17
On vaikea tulostaa esim. merkkijonon toiseksi viimeistä..
Saanko jollain otettua nuo ylimääräiset tyhjät pois, vai onko olemassa vastaavaa funktiota joka ei niitä laske.
Ne tyhjät saa pois vaikkapa preg_replace() funktiolla. PHP.netistä löytyi seuraavanlainen esimerkki asiasta:
<?php $string = " once upon a time"; preg_replace ( array ( '/\s+/s', // Any space(s) '/^\s+/s', // Any space(s) at the beginning '/\s+$/s' // Any space(s) at the end ), array ( ' ', // ... one space '', // ... nothing '' // ... nothing ), $string ); echo $string; // outputs 'once upon a time' ?>
Jep, kiitti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.