|
| hive foo ud af bar[foo] i en streng Fra : Henrik Stidsen |
Dato : 22-11-03 03:24 |
|
hvis jeg har en streng med en masse tekst og der en eller flere gange
gemmer sig et bar[foo] i teksten, hvordan er det så nemmest at få foo
ud i et array ?
Umidelbart vil jeg bruge noget ereg eller lign. men jeg synes altid
det driller...
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Jonas Delfs (22-11-2003)
| Kommentar Fra : Jonas Delfs |
Dato : 22-11-03 11:49 |
|
"Henrik Stidsen" <nospamforme@hs235.dk> skrev i en meddelelse
news:Xns943B22AC5C109HS235dk@130.225.247.90...
> hvis jeg har en streng med en masse tekst og der en eller flere gange
> gemmer sig et bar[foo] i teksten, hvordan er det så nemmest at få foo
> ud i et array ?
Regulære udtryk er din ven. Kig på preg_* i manualen.
--
Mvh. Jonas Delfs
Freelance-webprogrammør: http://delfs.dk
| |
Henrik Stidsen (22-11-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 22-11-03 16:35 |
|
"Jonas Delfs" <jonas@NOSPAM.delfs.dk> wrote in
news:bpneui$bt5$1@sunsite.dk
>> hvis jeg har en streng med en masse tekst og der en eller flere
>> gange gemmer sig et bar[foo] i teksten, hvordan er det så
>> nemmest at få foo ud i et array ?
>
> Regulære udtryk er din ven. Kig på preg_* i manualen.
Ser ud til preg_grep() kan hvad jeg skal bruge.
Men så skal man vel bagefter "rense" outputtet så man kun har foo
værdien, ikke sandt ?
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Jonas Delfs (23-11-2003)
| Kommentar Fra : Jonas Delfs |
Dato : 23-11-03 11:44 |
|
"Henrik Stidsen" <nospamforme@hs235.dk> skrev i en meddelelse
news:Xns943BA8C7EF4C1HS235dk@130.225.247.90...
> "Jonas Delfs" <jonas@NOSPAM.delfs.dk> wrote in
> news:bpneui$bt5$1@sunsite.dk
>
> >> hvis jeg har en streng med en masse tekst og der en eller flere
> >> gange gemmer sig et bar[foo] i teksten, hvordan er det så
> >> nemmest at få foo ud i et array ?
> >
> > Regulære udtryk er din ven. Kig på preg_* i manualen.
>
> Ser ud til preg_grep() kan hvad jeg skal bruge.
Hvorfor ikke preg_match?
> Men så skal man vel bagefter "rense" outputtet så man kun har foo
> værdien, ikke sandt ?
Nej - du konstruerer blot dit udtryk så det kun returnerer foo. Det kræver
selvfølgelig at man sætter sig lidt ind i regulære udtryk.
--
Mvh. Jonas Delfs
Freelance webprogrammør: http://delfs.dk
| |
Henrik Stidsen (23-11-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 23-11-03 23:10 |
|
"Jonas Delfs" <jonas@NOSPAM.delfs.dk> wrote in
news:bpq308$4qi$1@sunsite.dk
>> Ser ud til preg_grep() kan hvad jeg skal bruge.
>
> Hvorfor ikke preg_match?
Tjaa, preg_grep giver et array, preg_match giver et antal og et array
(hvis man fortæller den hvilket den skal bruge).
Umidelbart kan begge vel bruges og give ca. samme resultat ?
>> Men så skal man vel bagefter "rense" outputtet så man kun har
>> foo værdien, ikke sandt ?
>
> Nej - du konstruerer blot dit udtryk så det kun returnerer foo.
> Det kræver selvfølgelig at man sætter sig lidt ind i regulære
> udtryk.
Nu er jeg ikke lige verdensmester i regex, kan du give et hurtigt
eksempel på det ?
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Jonas Delfs (24-11-2003)
| Kommentar Fra : Jonas Delfs |
Dato : 24-11-03 20:06 |
|
"Henrik Stidsen" <nospamforme@hs235.dk> skrev i en meddelelse
news:Xns943CEBA5690C8HS235dk@130.225.247.90...
> "Jonas Delfs" <jonas@NOSPAM.delfs.dk> wrote in
> news:bpq308$4qi$1@sunsite.dk
>
> >> Ser ud til preg_grep() kan hvad jeg skal bruge.
> > Hvorfor ikke preg_match?
>
> Tjaa, preg_grep giver et array, preg_match giver et antal og et array
> (hvis man fortæller den hvilket den skal bruge).
> Umidelbart kan begge vel bruges og give ca. samme resultat ?
preg_grep kræver et array som input, og i din oprindelige post siger du at
du har en string og ikke et array. :)
> >> Men så skal man vel bagefter "rense" outputtet så man kun har
> >> foo værdien, ikke sandt ?
> >
> > Nej - du konstruerer blot dit udtryk så det kun returnerer foo.
> > Det kræver selvfølgelig at man sætter sig lidt ind i regulære
> > udtryk.
>
> Nu er jeg ikke lige verdensmester i regex, kan du give et hurtigt
> eksempel på det ?
Du matcher bare på noget a la "bar[([a-z0-9]+)]".. eller misforstår jeg?
--
Mvh. Jonas Delfs
Freelance webprogrammør: http://delfs.dk
| |
Kristian Thy (24-11-2003)
| Kommentar Fra : Kristian Thy |
Dato : 24-11-03 20:44 |
|
Jonas Delfs uttered:
>> Nu er jeg ikke lige verdensmester i regex, kan du give et hurtigt
>> eksempel på det ?
>
> Du matcher bare på noget a la "bar[([a-z0-9]+)]".. eller misforstår
> jeg?
Husk at escape [ og ] som hhv. \[ og \]
\\kristian
--
78% of all statistics are made up on the spot.
| |
Jonas Delfs (24-11-2003)
| Kommentar Fra : Jonas Delfs |
Dato : 24-11-03 21:25 |
|
"Kristian Thy" <thy@it.edu> skrev i en meddelelse
news:bptn26$1rd9m2$1@ID-157676.news.uni-berlin.de...
> Jonas Delfs uttered:
> >> Nu er jeg ikke lige verdensmester i regex, kan du give et hurtigt
> >> eksempel på det ?
> >
> > Du matcher bare på noget a la "bar[([a-z0-9]+)]".. eller misforstår
> > jeg?
>
> Husk at escape [ og ] som hhv. \[ og \]
Det var nu egentligt også bare et pseudo-eksempel, men ja, den glippede i
farten.:)
Fangede du idéen, Henrik?
--
Mvh. Jonas Delfs
Freelance webprogrammør: http://delfs.dk
| |
Henrik Stidsen (25-11-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 25-11-03 23:43 |
|
"Jonas Delfs" <jonas@NOSPAM.delfs.dk> wrote in
news:bptl81$l7g$1@sunsite.dk
> preg_grep kræver et array som input, og i din oprindelige post
> siger du at du har en string og ikke et array. :)
Ups, det havde jeg helt overset :/
>> > Nej - du konstruerer blot dit udtryk så det kun returnerer
>> > foo. Det kræver selvfølgelig at man sætter sig lidt ind i
>> > regulære udtryk.
>> Nu er jeg ikke lige verdensmester i regex, kan du give et
>> hurtigt eksempel på det ?
> Du matcher bare på noget a la "bar[([a-z0-9]+)]".. eller
> misforstår jeg?
Jeg får vel bar[] med ud alligevel ikke ?
Hvis jeg har strengen "bla bla bla bar[foo] bla bla bla" og bruger
ovenstående regex får jeg vel "bar[foo]" som resultat ?
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Jonas Delfs (26-11-2003)
| Kommentar Fra : Jonas Delfs |
Dato : 26-11-03 14:25 |
|
"Henrik Stidsen" <nospamforme@hs235.dk> skrev i en meddelelse
news:Xns943EF144B7F5EHS235dk@130.225.247.90...
> "Jonas Delfs" <jonas@NOSPAM.delfs.dk> wrote in
> news:bptl81$l7g$1@sunsite.dk
> > Du matcher bare på noget a la "bar[([a-z0-9]+)]".. eller
> > misforstår jeg?
>
> Jeg får vel bar[] med ud alligevel ikke ?
>
> Hvis jeg har strengen "bla bla bla bar[foo] bla bla bla" og bruger
> ovenstående regex får jeg vel "bar[foo]" som resultat ?
Prøv at ekservere følgende stump, så er jeg sikker på at du er med.
$str = "bla bla hej med dig bar[sars] bla la";
preg_match("/bar\[([a-z]+)\]/", $str, $matches);
print_r($matches);
--
Mvh. Jonas Delfs
Freelance webprogrammør: http://delfs.dk
| |
Henrik Stidsen (27-11-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 27-11-03 03:03 |
|
"Jonas Delfs" <jonas@NOSPAM.delfs.dk> wrote in
news:bq29if$1fg$1@sunsite.dk
>> Hvis jeg har strengen "bla bla bla bar[foo] bla bla bla" og bruger
>> ovenstående regex får jeg vel "bar[foo]" som resultat ?
>
> Prøv at ekservere følgende stump, så er jeg sikker på at du er med.
Hmm ja, kan godt se at resultatet bliver rigtigt - men hvordan det
lige sker er jeg ikke helt med på :)
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Peter Brodersen (27-11-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 27-11-03 03:32 |
|
On Thu, 27 Nov 2003 02:02:44 +0000 (UTC), Henrik Stidsen
<nospamforme@hs235.dk> wrote:
>Hmm ja, kan godt se at resultatet bliver rigtigt - men hvordan det
>lige sker er jeg ikke helt med på :)
Parenteser i det regulære udtryk er "capturing" - dvs. indholdet af de
forskellige parentes-sæt er en del af resultatet.
Prøv fx med:
$str = "bla bla hej med dig bar[sars] bla la";
preg_match("/((b)a)(r\[([a-z]+)\])/", $str, $matches);
print_r($matches);
... her bliver resultatet så:
Array
(
[0] => bar[sars]
[1] => ba
[2] => b
[3] => r[sars]
[4] => sars
)
[0] dækker hele det matchede udtryk i string'en. Derefter er 1,2,3,4,
etc. hvad de forskellige parenteser har matchet, talt ud fra
startparentesen. Den første parentes rummer "ba", den anden kun "b",
den tredje hele "r[sars]", og den fjerde blot det inde mellem de
skarpe parenteser, altså "sars".
--
- Peter Brodersen
Ugens sprogtip: skodder (og ikke skoder)
| |
Henrik Stidsen (27-11-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 27-11-03 17:49 |
|
Peter Brodersen <usenet@ter.dk> wrote in
news:bq3nk3$pl4$1@dknews.tiscali.dk
>>Hmm ja, kan godt se at resultatet bliver rigtigt - men hvordan
>>det lige sker er jeg ikke helt med på :)
>
> Parenteser i det regulære udtryk er "capturing" - dvs. indholdet
> af de forskellige parentes-sæt er en del af resultatet.
Okay, nu tror jeg jeg forstår det :)
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
|
|