webForumDet fria alternativet

Att söka i textsträngar, snälla hjälp

Perl & Ruby

1 svar · 291 visningar · startad av Edguy

Medlem sedan apr. 20055 inlägg
Frågan#1

kan ni hjälpa mig med följande:

Jag har markerat raden som jag bör ändra.. När jag postar en söksträng öppnar den en textfil/databas
med följande struktur: NAMN ; LATITUD ; TYP
Men problemet är att när den läser och kollar varje rad så blir (/($substr.*.$semicolon.*)/mgi) lite fel, när jag söker på "Göteb"
kommer "Göteborg" fram, men när jag söker på "teborg" så får jag endast ut "teborg"
Varför kan jag inte sätta en stjärna/jokertecken innan (/(*.$substr.*.$semicolon.*)/mgi) ???

       open FILE, $input{"country"} . ".txt" or errors "Cannot open search file.\n";
       undef $/;
       $_ = <FILE>;
       $/ = "\n";

  ######## DAVIDS INTYPING
  $substr = "$input{'searchstring'}";
  $semicolon = "\;";
  $numberOfHits = 0;
  if (length($substr) > 3) {
   [red][B]while (/($substr.*.$semicolon.*)/mgi) {[/B][/red]
    $row = $1;
    ($name, $latitude, $type) = split /;/, $row;
    $result .= '      <tr>';
    $result .= "        <td><font face=Arial size=2>$name</td>";
    $result .= "        <td><font face=Courier New size=2>$latitude</td>";
    $result .= "        <td><font face=Arial size=2>$type</td>";
    $result .= '      </tr>';
    $numberOfHits++;
   }
  }
Medlem sedan apr. 20055 inlägg
#2

hittade svaret själv

while (/(.+?$substr.*.$semicolon.*)/mgi) {

tack ändå alla(?) :-)

254 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)