Schrift
[thread]8828[/thread]

Wort aus Liste zuerst matchen?

Leser: 1


<< >> 7 Einträge, 1 Seite
vayu
 2007-03-12 11:28
#74929 #74929
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe folgendes Problem. Ich habe eine Liste mit suchparametern:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
my @allability =  ( 
"göttlich",
"galaktisch",
"märchenhaft",
"mythisch",
"außerirdisch",
"gigantisch",
"übernatürlich",
"Weltklasse",
"fantastisch",
"brillant",
"großartig",
"hervorragend",
"sehr gut",
"gut",
"passabel",
"durchschnittlich",
"schwach",
"armselig",
"erbärmlich",
"katastrophal"
);


da drin seht ihr schon das "gut" und das "sehr gut".

diese Wörter können in verschiedenen Sätzen vorkommen, die ich aus einem File auslese.

ich matche das ganze, indem ich vorher ein

Code: (dl )
my $abs = join "|", @ability;


und dann per:

Code: (dl )
if($line =~ /.*($abs).*/)


gucke, ob das wort vorhanden ist.

dummerweise wird mir bei einem vorkommen von "sehr gut" immer nur das "gut" gematched.

kann man da was machen?
MisterL
 2007-03-12 11:56
#74930 #74930
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
So als spontane Idee: die Gänsefüsschen müssen mit in den zu suchenden regulären Ausdruck. Statt gut wird also "gut" gesucht.
“Perl is the only language that looks the same before and after RSA encryption.”
vayu
 2007-03-12 12:07
#74931 #74931
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
das hat funktioniert, danke schön :)

reicht ja, wenn ich die um das gut rumsetze. der rest passt ja\n\n

<!--EDIT|vayu|1173694072-->
renee
 2007-03-12 12:15
#74932 #74932
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dein RegEx ist zu gierig. Mach mal
Code: (dl )
if($line =~ /.*?($abs).*/)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
vayu
 2007-03-12 12:29
#74933 #74933
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
ich weiss nicht wieso, aber ich peil jedes mal von neuem nicht wo ich das Fragezeichen hinzusetzen habe :P damit steh ich total auf dem Kriegsfuss ...

danke renee, auch das funktioniert ... natürlich :)
renee
 2007-03-12 12:41
#74934 #74934
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Eigentlich bräuchtest Du sowohl das .*? vorne als auch das .* hintendran nicht. Im Gegenteil, es bremst Deine RegEx engine wahrscheinlich nur aus (ich weiß nicht, inwieweit die da was optimiert)...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
vayu
 2007-03-12 12:53
#74935 #74935
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
achso ... hab da eigentlich noch klammern drum, weil ich das auch auslese :)
<< >> 7 Einträge, 1 Seite



View all threads created 2007-03-12 11:28.