Pereiti prie turinio

nereikalingo teksto pasalinimas is eilutes


Rekomenduojami pranešimai

sveiki, prireike jusu patarimo kaip pasalinti groteles ir po juo einanti teksta. apacioje pateisiu pavyzdi teksto:

pavadinimas #tagas pavadinimas #tagas #tagas pavadinimas

 

pats bandziau su preg_replace. bet geriausiu atveju man tik pasalina groteles. kaip suformuoti uzklausa, kad nuimtu #tagas. kur yra groteles su tekstu, tekstas visada keiciasi. pats bandziau su tokiu kodu:

<?php
$string_to_explode="pavadinimas #tagas pavadinimas #tagas #tagas pavadinimas";
echo preg_replace("^#[a-Z]","",$string_to_explode);
?>

 

bet nieko neivyksta. gal kas uzves ant kelio.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na man šovė iškart į galvą kitas būdas, kadangi apie regular expression mažai išmanau.

Tą pavadinimą išskaidyk su explode, pašalinti jei rastas priekyje # paprasčiau bus.

 

Pvz.: šitas tau pašalins viską jei ras #

 

$newstring = preg_replace('/#.*/s', '', $string);

 

Arba su substr

 

$newstring = substr($string, 0, strpos($string, '#'));

 

Čia aišku tik tuo atveju jei paduosi po vieną šodį pavadinimo kaip jau aukščiau minėjau.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na man šovė iškart į galvą kitas būdas, kadangi apie regular expression mažai išmanau.

Tą pavadinimą išskaidyk su explode, pašalinti jei rastas priekyje # paprasčiau bus.

 

Pvz.: šitas tau pašalins viską jei ras #

 

$newstring = preg_replace('/#.*/s', '', $string);

 

Arba su substr

 

$newstring = substr($string, 0, strpos($string, '#'));

 

Čia aišku tik tuo atveju jei paduosi po vieną šodį pavadinimo kaip jau aukščiau minėjau.

dekingas, suveike :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

jei egrai supratau, ir tau reik paimti viską kas iki grotelių eina, tai paprasčiausias būdas būtų explode

 

$string = explode("#", "pavadinimas #tagas pavadinimas #tagas #tagas pavadinimas");
echo $string[0];

// grąžins pavadinimas (su tarpu, jį pasišalinti manau mokėsi)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kodėl neveikė tavo pirmas variantas:

echo preg_replace("^#[a-Z]","",$string_to_explode);

Regexe ^ reiškia eilutės pradžią (t.y. gaudytų tik patį pirmą # tekste, jei jis būtų iš pat pradžių), [a-Z] keistas ruožas (galbūt turėjai minty [A-z] (šis turi keletą ne-raidžių) ar [A-Za-z]). Be pliuso ruožas gaudo tik vieną raidę.

Susumuojant klaidas, teisingas regexas būtų panašus į:

#[A-Za-z]+

Na, aišku, prisidėtų PHPiniai /.../ ir t.t.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...