Avatar billede quisifa Nybegynder
24. juli 2003 - 02:48 Der er 16 kommentarer og
1 løsning

Søgning efter tegn i String->String

Hvis man har en string evt. "('(hmmm)')" hvorman vil vælge det der står mellem de yderste "(" og ")" (som er '(hmmm)') er der så en funktion i php man kan bruge og evt. hvordan bruges den?
Avatar billede simonvalter Praktikant
24. juli 2003 - 02:57 #1
nu koder jeg ikke php så jeg har kun lige skimtet strings .. men jeg ville nok bruge

strripos til at finde "(' og ')"
og så bruge substr til at vise det med
Avatar billede quisifa Nybegynder
24. juli 2003 - 02:58 #2
strpos tager ikke højde for at de inderste ( og ) er inde i '' så de egentlig skal opfattes som en string i stringen
Avatar billede quisifa Nybegynder
24. juli 2003 - 03:00 #3
sorry så forkert, kender ikke lige strripos :|
Avatar billede quisifa Nybegynder
24. juli 2003 - 03:02 #4
Men den virker heller ikke :( da den fungerer som strpos, bare tager det sidste tegn, hvor imod jeg ønsker det næste der kommer, men som tager forbehold for at et tegn af samme type kan stå inde i en string, hvor det så ikke bliver registrerede
Avatar billede simonvalter Praktikant
24. juli 2003 - 04:08 #5
lol jeg ved godt jeg har gang i noget slamkode her .. men havde ikke andet at lave ... =)

<?php
$mystring  = "''('(hmmm)')''";
$find1 = "''('";
$find2 = "')''";
$string1 = strpos($mystring, $find1)+4;
$string2 = strpos($mystring, $find2)-4;
$thestring = substr($mystring,$string1,$string2);
echo $thestring;
?>
Avatar billede razor Nybegynder
24. juli 2003 - 08:38 #6
preg_match("/\(('\(.*\)')\)/", "('(flaf)')", $regs);
print $regs[1];
Avatar billede quisifa Nybegynder
24. juli 2003 - 15:52 #7
Ikke helt det jeg ønskede for her tages der jo hvad der står mellem "('" og "')" så vidt jeg har forstået, mens det jeg ønsker er at den tager hvad der står mellem "(" og ")" og så tager forbehold for om den næste parantes står inde i ' eller " og i det tilfælde så ikke "regner" med den og fortsættersin søgen efter næste ")".
Avatar billede razor Nybegynder
24. juli 2003 - 16:36 #8
Har du overhovedet testet mit bud? :/

http://razor.dk/eksperten/379243.php
http://razor.dk/eksperten/379243.phps

Er det ikke det ønskede resultat?
Avatar billede quisifa Nybegynder
24. juli 2003 - 16:41 #9
Problemet ligger i at den ikke er "solid nok" da evt.
preg_match("/\(('\(.*\)')\)/", "('(flaf)', 'gah' )", $regs);
print $regs[1];
resulterer i ingenting, hvis imod det skulle resulterer i "'(flaf)', 'gah'"
Avatar billede razor Nybegynder
24. juli 2003 - 17:01 #10
Kig lige igen :-)
Avatar billede quisifa Nybegynder
24. juli 2003 - 17:03 #11
preg_match("/\(('\(.*\)')\)/", "('(flaf)', 'gah' )", $regs);
print $regs[1];

returnerer ingenting på min :/
Avatar billede razor Nybegynder
24. juli 2003 - 17:04 #12
Prøv med den nye jeg har lagt op :-)
Avatar billede quisifa Nybegynder
24. juli 2003 - 17:10 #13
mm nu ser det ud til at virke :) Hvordan ændre jeg det til "{" "}" hvis jeg hellere vil bruge dem i stedet for paranteser? :) (p.S bare svar)
Avatar billede razor Nybegynder
24. juli 2003 - 17:13 #14
Den udgave jeg har lagt op nu har en udkommenteret udgave hvor du kan se det :)
Avatar billede quisifa Nybegynder
24. juli 2003 - 17:14 #15
tak for hjælpen :)
Avatar billede razor Nybegynder
24. juli 2003 - 17:21 #16
Hvis du i øvrigt skulle have lyst til at lære lidt mere om regular expressions (som du stortset ikke kan undvære i dagligdagen når du først kan det) kan jeg anbefale "Mastering Regular Expressions" af Jeffrey Friedl :-)
Avatar billede quisifa Nybegynder
24. juli 2003 - 17:22 #17
Lyder væmmeligt fældt med sådan en stor bog :) Men tak
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