Autor | Zpráva | ||
---|---|---|---|
SteveO Profil * |
#1 · Zasláno: 21. 1. 2015, 09:09:04
Zdravím,
pomohl by někdo s regulárem? Potřeboval bych ze stringu dostat první tři slova, ale neuvažovat jednoznaková slova a číslice. Takže by vyhovovalo všechno toto: slovo1 slovo2 slovo3 slovo1 a slovo2 slovo3 slovo1 123 slovo2 slovo3 slovo1 456 slovo2 a slovo3 Díky moc. |
||
Kcko Profil |
#2 · Zasláno: 21. 1. 2015, 13:20:16
SteveO:
Regulár možná zbytečně složitý. 1) explodnout podle mezery 2) procházet cyklem vzniklé pole, a dle vlastní logiky uložit do proměnné / pole pouze slova, které potřebujete a po dosažení limitu (tj. 3) cyklus ukončit. |
||
Taps Profil |
SteveO:
<? function zkraceni($text){ $slova = explode(" ",$text); foreach($slova as $index => $s){ if(strlen($s) == 1) continue; elseif(is_numeric($s)) continue; $uprava[] = $s; if($index == 3) break; } return implode(" ",$uprava); } echo zkraceni("slovo1 slovo2 a slovo3 slova5 slova6"); ?> |
||
Chro. Profil |
#4 · Zasláno: 21. 1. 2015, 18:29:13
Když už jsem byl pomalejší...
function getfirst3($text) { if (substr_count($text, ' ') < 2) return $text; $words = explode(' ', $text); $output = array(); $i = 0; foreach ($words as $word) { $output[] = $word; if (strlen($word) < 2 || ctype_digit($word)) continue; $i++; if ($i === 3) break; } return implode(' ', $output); //pro zobrazení v prohlížeči by bylo možná vhodné použít jako spojovač } //použití echo getfirst3('TestTest Text'); //zobrazí to samé, počet mezer je menší než 2 echo getfirst3('Kočka, pes a prase jsou kamarádi.'); //Kočka, pes a prase echo getfirst3('Nezjištná pomoc šlechtí člověka.'); //Nezjištná pomoc šlechtí |
||
Časová prodleva: 9 let
|
0