Tekst :: Scannen

Snel zoeken naar zeer grote aantallen sleutels in een tekst.
Download nu

Tekst :: Scannen Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Ira Woodhead
  • Uitgever website:
  • http://search.cpan.org/~tbusch/

Tekst :: Scannen Tags


Tekst :: Scannen Beschrijving

Snel zoeken naar zeer grote aantallen sleutels in een tekst. Tekst :: Scannen is een PERL-module die snel zoeken naar zeer grote aantallen sleutels in een lichaam van tekst. Synopsis Gebruik tekst :: scannen; $ DICT = nieuwe tekst :: scannen; % termen = (hond => 'canine', beer => 'ursine', varken => 'Porcine'); # Laad het woordenboek met toetsen en waarden # (waarden kunnen elke scalaire zijn, sleutels moeten snaren zijn) terwijl (($ sleutel, $ VAL) = elke% -voorwaarden) {$ DICT-> INSERT ($ KEY, $ VAL); } # Scan een document voor wedstrijden $ Document = 'De hond at de beer, maar de hond kreeg indigestie'; % gevonden = $ DICT-> SCAN ($ DOCUMENT); # Nu% gevonden is (hond => canine, beer => ursine) # of, als u een aantal voorvallen van een bepaalde # -toets moet tellen, gebruik dan een array. Dit geeft je een telbare platte lijst # van sleutel => waardeparen. @Found = $ DICT-> SCAN ($ DOCUMENT); # nu @Found is (hond => canine, beer => ursine, hond => canine) # check for lidmaatschap ($ val is waar) $ VAL = $ DICT-> heeft ('varken'); # Haal waarde op voor de gegeven sleutel. Retourneert undef als er geen sleutel wordt gevonden. $ VAL = $ DICT-> VAL ($ Sleutel); # Haal alle sleutels op. Dit retourneert alle ingevoegde toetsen in volgorde # Insertion @Keys = $ DICT-> -toetsen (); # @Keys is (hond, beer, varken) # haal alle waarden op (in dezelfde volgorde als bijbehorende toetsen) # (nieuw in v0.10) @Vals = $ dict-> waarden (); # @Vals is (Canine, Ursine, Porcine) # Kom terug alles wat je hebt ingevoegd% alles = $ Dict-> Dump (); # "Mindex" # zoals Perl's index () maar met meerdere patronen (nieuw in v0.07) # kunt u scannen naar de startposities van termen. @indices = $ DICT-> MINDEX ($ DOCUMENT); # @indices is (hond => 4, beer => 16, hond => 29) # De hash-context levert de positie van de laatste gebeurtenissen op # van elk woord% indices = $ DICT-> MINDEX ($ Document); #% indices is (hond => 26, beer => 16) # Multiscan () (> = v0.23) # Haalt alles ophalen () en motex () doet, in de vorm # van een reeks referenties. Elke referentiepunten naar een lijst # van (sleutel, index, waarde) @result = $ dict-> multiscan ($ Document); # @Result is (, , ) # Schakel het scannen van jokertekening in. (> = v0.09) # Dit kan op elk moment worden gedaan. Werkt voor Scan () en Mindex (). Wildcards # omvatten elk aantal niet-single-space-equivalent tekens. $ dict-> usewild (); # Sla een woordenboek op en herstel het vervolgens. (Serialize en herstel nieuwe in v0.14) # Dit is cool maar pas op, alle waarden worden omgezet in snaren. # LET OP HERSTELLING () is veel sneller dan de originele insertie van # -toets / waarden. Deze retourneren 0 op succes, errno op falen. $ DICT-> Serialize ("DICT_NAME"); $ DICT-> HERSTELLEN ("DICT_NAME"); # Plaats een wereldwijd gelijkwaardigheidsklasse in werking. Dit komt overeen met alle # deze karakters alsof ze hetzelfde waren. (v0.17) $ Dict-> Charclass (".:; ,?"); $ DICT-> Insert ("Wat?", "Wat?"); @Found = $ DICT-> SCAN ("ERR ... wat, er is iets mis?"); # nu @Found is ("Wat," => "Wat?"); # Scan case-ontstaan. Dit moet vóór alle inserties worden gebeld. $ dict-> ignorecase (); # Stel een klasse van tekens in om de grenzen van elke wedstrijd te zijn, # zodanig dat de tekens onmiddellijk voor het begin en nadat het # eindigend van een overeenkomst in deze klasse moet zijn. Standaard is de single # -ruimte. (Begin en einde van de reeks tellen altijd als grenzen) # Dit kan op elk moment worden gebeld en elke vorige oproepen overtreft. $ DICT-> Grens (".?"); # Negeer bepaalde tekens. Je kunt een klasse van tekens definiëren die het # Woordenboek moet doen alsof we niet bestaan. U moet dit vóór # invoegties noemen. $ dict-> negeer (" () "); # Behandel alle aangrenzende single-space-equivalente tekens # (zoals gedefinieerd door Charclass ()) als één char. Meest gevraagde functie # De laatste tijd, nieuw in v0.25 $ Dict-> SqueezeBlanks; # vergelijkbaar met de grens Methode behalve dat de feitelijke grens # wordt beschouwd als net voor het grenskarakter. Dit is handig # wanneer het grenskarakter zelf moet worden gematcht op het # begin van een wedstrijd. # bijvoorbeeld om te zoeken naar '-foo' In 'Bar-Foo' moet de volgende # -klasse $ DICT-> Enkel ('-') worden ingesteld; deze module biedt faciliteiten voor snel zoeken op snaren met zeer vele zoektoetsen. Het basisobject gedraagt zich enigszins als een Perl Hash Behalve dat u kunt ophalen op basis van een superstring van alle sleutels die zijn opgeslagen. Saft eenvoudig een tekenreeks zoals hierboven weergegeven en u krijgt een PERL HASH (of lijst) van alle toetsen die in de tekenreeks worden aangetroffen (samen met bijbehorende waarden en / of posities) . Alle toetsen die in de tekst aanwezig zijn, worden geretourneerd. Er zijn verschillende manieren om het gedrag van de wedstrijd, C te beïnvloeden Hoofdly door het gebruik van verschillende soorten wereldwijde tekenklassen. Deze zijn anders dan reguliere expression char classes, omdat ze van toepassing zijn op de hele tekst en voor alle sleutels. Deze bestaan uit de klasse "Negeer", de klasse "Grens", de "Enkelvoudige" klasse, en alle door de gebruiker gedefinieerde klassen. Gebruikte "Negeer" -karakters U kunt de scan laten doen alsof een Char in de tekst niet bestaat. Dit is handig als u trajecting van uw tekst wilt vermijden. Dus bijvoorbeeld als de periode '.' In uw klasse "Negeren", wordt de tekst precies behandeld alsof alle perioden zijn verwijderd. Om te definiëren welke tekens kunnen tellen als de scheidingsteken van elke wedstrijd (standaardsruimte), kunt u de klasse "Grens" gebruiken. Op deze manier kunt u bijvoorbeeld interpunctie tellen als een grens, en de zinnen die aan het einde worden begrensd door interpunctie zullen overeenkomen.any door de gebruiker gedefinieerde tekenklassen kunnen worden gebruikt om verschillende tekens als hetzelfde te tellen. Dit wordt bijvoorbeeld intern gebruikt om case-ongevoelige matching te implementeren. Over Unicode / UTF8-snaren. Tekst :: Scan handelingen op het octetniveau, dus het is niet op de hoogte van alles over Unicode / UTF8-gecodeerde snaren. Als u met dergelijke snaren omgeeft, wordt het aanbevolen om Octets Snings op tekst te geven :: Scannen met CODEODE :: CODE_UTF8 (). Tekst :: Scannen geeft u dan terug Octets-strings, UTF8 gecodeerde toetsen. Vereisten: · Guiton


Tekst :: Scannen Gerelateerde software

SSLH

Inkomende verbinding schakelen tussen SSH- en SSL / HTTPS-servers. ...

168

Downloaden