Avatar billede kurtspurt Nybegynder
21. september 2004 - 16:22 Der er 15 kommentarer og
1 løsning

ereg_replace og <eng></eng>

Hej

Hvis jeg nu gerne vil have teksten imellem <eng> tags'ene i strengen

"flkdzflkjsdfglkshfdlkjshdfglihdsflkj  <eng>zfdsglksadksksksks</eng>"


hvordan gør jeg så det smartest. Kunne forestille mig at det var smart at bruge noget ereg_replace (som jeg desværre ikke er så familiær med endnu)
Avatar billede roenving Novice
21. september 2004 - 16:29 #1
Kender ikke til php, men et godt gæt:

$str = preg_replace ("/<eng>(.*)<\/eng>/i", "\\1", $str);
Avatar billede jensgram Nybegynder
21. september 2004 - 16:32 #2
Måske endda et lille ? for ikke at gøre den greedy... (eller hvad?)

$str = preg_replace("/<eng>(.*?)<\/eng>/i", "\\1", $str);
Avatar billede kurtspurt Nybegynder
21. september 2004 - 16:35 #3
nope - den fjerner bare <eng> tags.

Humlen er at jeg KUN vil have teksten der er IMELLEM de to tags :-)
Avatar billede jensgram Nybegynder
21. september 2004 - 16:39 #4
Det lyder underligt - hvad tester du med ($str)?
Avatar billede roenving Novice
21. september 2004 - 16:41 #5
$str = preg_replace("/^.*?<eng>(.*?)<\/eng>.*?$/i", "\\1", $str);
Avatar billede kurtspurt Nybegynder
21. september 2004 - 16:42 #6
kode:
<?
$str = "En lille dansk string<eng>GB IS THE BEST!!!</eng>";
echo  preg_replace("/<eng>(.*?)<\/eng>/i", "\\1", $str);
?>
resultatet bliver:
En lille dansk stringGB IS THE BEST!!!
det skulle gerne ha været
GB IS THE BEST!!!
Avatar billede jensgram Nybegynder
21. september 2004 - 16:44 #7
Ja, det er klart. Roenving's nye svar skulle klare dette
Avatar billede kurtspurt Nybegynder
21. september 2004 - 16:49 #8
TaDAAAAA :-) - dejligt - roenving --> smid svar

Nå - så må jeg jo udlåde 30 point mere til den der kan give mig det der står UDEN om <eng>

En lille dansk string<eng>GB IS THE BEST!!!</eng>
skal blive til
En lille dansk string
Avatar billede roenving Novice
21. september 2004 - 16:53 #9
<?
$str = "En lille dansk string<eng>GB IS THE BEST!!!</eng>";
echo  preg_replace("/^.*?<eng>(.*?)<\/eng>.*?$/i", "\\1", $str);
echo  preg_replace("/^(.*?)<eng>(.*?)<\/eng>(.*?)$/i", "\\1 \\3", $str);
?>
Avatar billede kurtspurt Nybegynder
21. september 2004 - 16:57 #10
det ER da dejligt :-) (smid svar)
Avatar billede coderdk Praktikant
21. september 2004 - 17:01 #11
preg_match_all( "/<eng>(.*?)<\/eng>/i", $str, $matches );
echo "<pre>"; var_dump( $matches );
Avatar billede roenving Novice
21. september 2004 - 17:01 #12
Velbekomme '-)
Avatar billede roenving Novice
21. september 2004 - 17:01 #13
;O)
Avatar billede coderdk Praktikant
21. september 2004 - 17:03 #14
og:

$uden = preg_replace( "/(<eng>.*?<\/eng>)/i", "", $str );
Avatar billede roenving Novice
21. september 2004 - 18:41 #15
Tak for point ;~}
Avatar billede kurtspurt Nybegynder
21. september 2004 - 18:44 #16
coderdk --> beklager, roenving havde svaret (21/09-2004 16:53:24)

    - tak for det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester