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

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
At finde noget i en streng eller et array ~
Fra : Simon [2700]


Dato : 18-09-03 07:19

Hej,

Er der en fancy mode hvorpå jeg kan tjekke om en sammensætning af ord,
f.eks. "xy zz" findes i en streng hvorefter den returnerer true/false eller
noget ?

det må også gerne være noget der kan tjekke om det findes i et array (ikke
som et helt "punkt" men bare en del af en streng i et array)...

Jeg ville bare gerne kunne komme uden om den slaviske hvor der bare testes
fra en ende af og man går strengen igennem et tegn af gangen... hvis det kun
virker i en streng er det også fint, så må jeg bare lave arrayet til en lang
streng først, eller køre igennem det fra en ende af...

Mange tak og fortsat god dag.

mvh.Simon



 
 
Flemming Frandsen (18-09-2003)
Kommentar
Fra : Flemming Frandsen


Dato : 18-09-03 07:47

Simon [2700] wrote:
> Hej,
>
> Er der en fancy mode hvorpå jeg kan tjekke om en sammensætning af ord,
> f.eks. "xy zz" findes i en streng hvorefter den returnerer true/false eller
> noget ?

Det er det man bruger regular expressions til, se: perldoc perlre

if ($string =~ /xy zz/) {
   ...
}


> det må også gerne være noget der kan tjekke om det findes i et array (ikke
> som et helt "punkt" men bare en del af en streng i et array)...

Det kan man bla. bruge grep til:

if (grep {/xy zz/} @arrayOfStrings) {

}


Hvis du vil kunne skifte strengen du tester med ud, så brug qr til at
pre-compilere dit expression før du pløjer igennem arrayet, det er
hurtigere:

my $rexep = qr§et $eller andet $regexp§;

if (grep {/$regexp/} @arrayOfStrings) {

}

--
Regards Flemming Frandsen - http://dion.swamp.dk
PartyTicket.Net co founder & Yet Another Perl Hacker


Jesper Louis Anderse~ (18-09-2003)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 18-09-03 11:48

In article <67365fb5791ab3a597c0be3e878c5187@unlimited.ultrafeed.com>,
Simon [2700] wrote:

> Er der en fancy mode hvorpå jeg kan tjekke om en sammensætning af ord,
> f.eks. "xy zz" findes i en streng hvorefter den returnerer true/false eller
> noget ?

Ja, der er 2 metoder: 1. En DFA (hvilket til dels er det RE's goer)
2. en KMP-matcher (Knuth-Morris-Pratt) som jeg tvivler paa at perl
har umiddelbart uden passende CPAN moduler.

--
j.

Christian Riis (18-09-2003)
Kommentar
Fra : Christian Riis


Dato : 18-09-03 12:05

Jesper Louis Andersen <jlouis@miracle.mongers.org> writes:

> In article <67365fb5791ab3a597c0be3e878c5187@unlimited.ultrafeed.com>,
> Simon [2700] wrote:
>
> > Er der en fancy mode hvorpå jeg kan tjekke om en sammensætning af ord,
> > f.eks. "xy zz" findes i en streng hvorefter den returnerer true/false eller
> > noget ?
>
> Ja, der er 2 metoder: 1. En DFA (hvilket til dels er det RE's goer)
> 2. en KMP-matcher (Knuth-Morris-Pratt) som jeg tvivler paa at perl
> har umiddelbart uden passende CPAN moduler.

Perl bruger (mest) NFA'er til regulaere udtryk.

   Ses.
   Christian

--
03 Schnurrbart Dali
Schmal; lange Spitzen im Bogen oder steil nach oben gerichtet; Haare
nur bis Ende der Oberlippe erlaubt.
Hilfsmittel* erlaubt!

Simon [2700] (20-09-2003)
Kommentar
Fra : Simon [2700]


Dato : 20-09-03 07:59

tak allesammen, jeg prøver
mvh.Simon



Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407936
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste