/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

Søg
Reklame
Statistik
Spørgsmål : 177518
Tips : 31968
Nyheder : 719565
Indlæg : 6408647
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste