Testo :: Scansione.

Ricerca veloce per un numero molto ampio di chiavi in un corpo di testo.
Scarica ora

Testo :: Scansione. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Ira Woodhead
  • Sito web dell'editore:
  • http://search.cpan.org/~tbusch/

Testo :: Scansione. Tag


Testo :: Scansione. Descrizione

Ricerca veloce per un numero molto ampio di chiavi in un corpo di testo. Testo :: Scansione è un modulo Perl che offre una ricerca rapida di un numero molto ampio di chiavi in un corpo di testo.Synopsis usa il testo :: Scansione; $ DET = Nuovo testo :: Scansione; % termini = (cane => 'canino', orso => 'ursine', maiale => 'porcine'); # Carica il dizionario con tasti e valori # (i valori possono essere qualsiasi scalare, i tasti devono essere stringhe) mentre (($ key, $ VAL) = ogni% termini) {$ Dict-> insert ($ tasto, $ VAL); } # Scansiona un documento per partite $ Document = 'Il cane ha mangiato l'orso ma il cane ha indigegno "; % trovato = $ dict-> scansione ($ documento); # Now% trovato è (cane => canino, bear => ursine) # o, se è necessario contare il numero di occorrenze di qualsiasi tasto # dato, utilizzare un array. Questo ti darà una lista di lista piatta numerabile # di tasto => coppie di valore. @Tound = $ Dict-> Scansione ($ documento); # ora @Found è (cane => canino, orso => ursine, cane => canino) # check for membership ($ VAL è vero) $ VAL = $ Dict-> ha ('Pig'); # Recupera valore per tasto specificato. Restituisce undef se non viene trovata alcuna chiave. $ VAL = $ DICET-> VAL ($ key); # Recupera tutte le chiavi. Questo restituisce tutti i tasti inseriti in ordine # di inserimento @Keys = $ Dict-> tasti (); # @Keys è (cane, orso, maiale) # recupera tutti i valori (nello stesso ordine dei tasti corrispondenti) # (nuovo in V0.10) @Vals = $ Dict-> valori (); # @Vals è (Canine, Ursine, Porcine) # Torna tutto ciò che hai inserito% TUTTO = $ DICT-> Dump (); # "Mindex" # come l'indice del Perl () ma con più modelli (nuovo in V0.07) # è possibile eseguire la scansione delle posizioni di partenza dei termini. @indices = $ dict-> mindex ($ documento); # @indices è (cane => 4, orso => 16, cane => 29) # Il contesto di hash produce la posizione degli ultimi occorrenze # di ogni parola% indici = $ dict-> mindex ($ documento); #% indici è (cane => 26, bear => 16) # Multiscondan () (> = v0.23) # Recupera tutto Scansione () e mindex (), nel numero # di una serie di riferimenti. Ogni riferimento punta a un elenco # di (chiave, indice, valore) @result = $ Dict-> Multiscan ($ documento); # @result è (, , ) # Attiva la scansione jolly. (> = v0.09) # Questo può essere fatto in qualsiasi momento. Funziona per Scansione () e Mindex (). Wildcards # comprendono qualsiasi numero di caratteri equivalenti non-singoli-space-equivalenti. $ dict-> usewild (); # Salva un dizionario, quindi ripristinarlo. (Serialize e ripristino Nuovo in V0.14) # Questo è bello ma attenzione, tutti i valori saranno convertiti in stringhe. # Nota il ripristino () è molto più veloce dell'inserimento originale di tasto / valori / valori. Questi ritorno 0 su successo, errno su fallimento. $ Dict-> serializzazione ("dict_name"); $ dict-> ripristino ("dict_name"); # Posiziona una classe di equivalenza del char globale in vigore. Questo corrisponde a tutti # questi personaggi come se fossero uguali. (v0.17) $ Dict-> charclass (".:; ,?"); $ Dict-> Inserisci ("Cosa?", "Cosa?"); @Found = $ Dict-> Scansione ("Err ... cosa, qualcosa di sbagliato?"); # ora @Tound è ("Cosa", => "Cosa?"); # Scansione caso-insensitiva Questo deve essere chiamato prima di eventuali inserimenti. $ dict-> ignorecase (); # Imposta una classe di caratteri per essere i confini di qualsiasi partita, # tale che il carattere immediatamente prima dell'inizio e dopo la fine # della partita deve essere in questa classe. L'impostazione predefinita è il singolo spazio. (Inizio e fine della stringa contare sempre come limiti) # Questo può essere chiamato in qualsiasi momento, e supervisiona le chiamate precedenti. $ dict-> limite (".?"); # Ignora determinati caratteri. Puoi definire una classe di caratteri che il dizionario # dovrebbe fingere di non esistere. Devi chiamarlo prima # qualsiasi inserimento. $ Dict-> Ignora (" () "); # TRATTA TUTTO TUTTO IL CARI DI CHARI EQUIVALENTE SINGOLO SVAIO CONTIGUOSE (come definito da Charclass ()) come un char. Funzionalità più richiesti # ultimamente, nuovo in V0.25 $ Dict-> Squeezeblanks; # simile al confine; # Metodo tranne che il limite effettivo è # considerato appena prima del carattere limite. Questo è utile # quando il personaggio del confine deve essere abbinato all'inizio di una partita. # Ad esempio per cercare "-Foo" in "Bar-Foo" la seguente classe # deve essere impostata $ Dict-> Inctoundary ('-'); questo modulo fornisce strutture per la ricerca rapida sulle stringhe con tanti chiavi di ricerca. L'oggetto di base si comporta in qualche modo come un hash perl, Tranne che è possibile recuperare in base a una superstring di qualsiasi tasti memorizzati. Basta eseguire la scansione di una stringa come mostrato sopra e rimetterà indietro di un hash perl (o elenco) di tutti i tasti trovati nella stringa (insieme a valori e / o posizioni) . Tutti i tasti presenti nel testo vengono restituiti. Ci sono diversi modi per influenzare il comportamento della partita, c hiefly mediante l'uso di diversi tipi di classi di carattere globale. Questi sono diversi dalle classi di caratteri di espressione regolare, in quanto si applicano all'intero testo e per tutte le chiavi. Questi consistono nella classe "Ignora", la classe "Confined", la classe "Inctountura", e qualsiasi classe definita dall'utente. I caratteri "Ignora" è possibile che la scansione fingere di fingere un char nel testo semplicemente non esiste. Questo è utile se vuoi evitare il tokening del tuo testo. Quindi, ad esempio, se il periodo '.' È nella tua classe "Ignora", il testo verrà trattato esattamente come se tutti i periodi fossero stati cancellati. Per definire quali caratteri possono contare come il delimitatore di qualsiasi corrispondenza (Singolo spazio per impostazione predefinita) È possibile utilizzare la classe "Boundary". Ad esempio, questo modo è possibile contare la punteggiatura come confine, e le frasi delimitate alla fine mediante la punteggiatura si abbinano.Almente le classi di caratteri definite dall'utente possono essere utilizzate per contare caratteri diversi come lo stesso. Ad esempio, questo viene utilizzato internamente per implementare la corrispondenza insensibile alle custodia. Corde Unicode / UTF8. Testo :: Scansione Atti a livello di ottetto Quindi non è a conoscenza di nulla su Corde codificate Unicode / UTF8. Se si tratta di tali stringhe, si consiglia di fornire ottetti stringhe a testo :: Scansione usando codifica :: encode_utf8 (). Testo :: Scansione ti restituirà quindi le stringhe degli Ottetti, UTF8 ha trovato chiavi riscontrate. Requisiti: · Guitone.


Testo :: Scansione. Software correlato