Texte :: Scan

Recherche rapide pour un très grand nombre de clés dans un corps de texte.
Télécharger maintenant

Texte :: Scan Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Perl Artistic License
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Ira Woodhead
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~tbusch/

Texte :: Scan Mots clés


Texte :: Scan La description

Recherche rapide pour un très grand nombre de clés dans un corps de texte. Texte :: Scan est un module Perl qui offre une recherche rapide pour un très grand nombre de clés dans un corps de texte.Synopsis utilise texte :: scan; $ dict = nouveau texte :: scan; % termes = (chien => 'canin', ours => 'Ursine', cochon => 'porcine'); # Chargez le dictionnaire avec les touches et les valeurs # (les valeurs peuvent être n'importe quel scalaire, les touches doivent être des chaînes) tandis que ((($ clé, $ val) = chaque% termes) {$ dict-> insert ($ clé, $ val); } # Scannez un document pour les matchs $ Document = "Le chien a mangé l'ours mais le chien a une indigestion"; % trouvé = $ dict-> scan ($ document); # maintenant% trouvé est (chien => canine, ours => ursine) # ou, si vous devez compter le nombre d'occurrences de n'importe quelle clé # donnée, utilisez un tableau. Cela vous donnera une liste de liste plate dénombrable de clé => paires de valeur. @found = $ dict-> scan ($ document); # maintenant @Found est (chien => canin, ours => ursine, chien => canine) # Vérification de l'adhésion ($ val est vrai) $ val = $ dict-> a ('cochon'); # Récupérer la valeur pour la clé donnée. Renvoie UNDEF si aucune clé n'est trouvée. $ val = $ dict-> valk ($ clé); # Récupérer toutes les clés. Cela renvoie toutes les clés insérées dans le numéro d'insertion @keys = $ dict-> (); # @Keys est (chien, ours, cochon) # récupérer toutes les valeurs (dans le même ordre que les clés correspondantes) # (Nouveau dans v0.10) @vals = $ dict-> valeurs (); # @vals est (canin, ursine, porcine) # récupérez tout ce que vous avez inséré% tout = $ dict-> Dump (); # "Mindex" # Comme l'indice de Perl () mais avec plusieurs modèles (NOUVEAU dans V0.07) # Vous pouvez numériser pour les positions de départ des termes. @indues = $ dict-> mindex ($ document); # @indices est (chien => 4, ours => 16, chien => 29) # Le contexte de hachage donne la position des dernières occurrences de chaque mot% indices = $ dict-> Mindex ($ Document); #% indices est (chien => 26, ours => 16) # Multiscan () (> = V0.23) # Récupère tout Scan () et Mindex (), dans le formulaire # d'une gamme de références. Chaque référence pointe vers un numéro de liste de (clé, index, valeur) @result = $ dict-> multi - multi - document; # @Result est (, , ) # Allumez le balayage générique. (> = v0.09) # Cela peut être fait à tout moment. Travaux pour Scan () et Mindex (). Les caractères génériques # englobent un nombre quelconque de caractères non équivalents à un seul espace. $ dict-> usewild (); # Enregistrer un dictionnaire, puis le restauré. (Serialize et restaurer Nouveau dans V0.14) # Ceci est cool mais méfiez-vous, toutes les valeurs seront converties en chaînes. # Remarque Restaurer () est beaucoup plus rapide que l'insertion initiale de # Key / Valeurs. Ces retours 0 sur le succès, errno sur l'échec. $ dict-> sérialisze ("dict_name"); $ dict-> restaurer ("dict_name"); # Placez une classe mondiale de l'équivalence de charcuterie en vigueur. Cela correspond à tous # ces personnages comme s'ils étaient les mêmes. (v0.17) $ dict-> charclass (".:;,?"); $ dict-> insert ("quoi?", "Quoi?"); @found = $ dict-> scan ("err ... Quoi, quelque chose de mal?"); # maintenant @Found est ("quoi," => "quoi?"); # Numériser insensiblement de casse. Cela doit être appelé avant toute insertion. $ dict-> ignorecase (); # Définir une classe de caractères pour être les limites de tout match, # de telle sorte que les caractères immédiatement avant le début et après la fin du match doivent être dans cette classe. La valeur par défaut est l'espace unique. (Le début et la fin de la chaîne comptent toujours comme limites) # Cela peut être appelé à tout moment et remplace les appels précédents. $ dict-> limite (".?"); # Ignorer certains caractères. Vous pouvez définir une classe de caractères que le dictionnaire # devrait prétendre n'exister pas. Vous devez appeler ceci avant # toutes les insertions. $ dict-> ignorer (" () "); # Traitez tous les caractères équivalents mono-espaces contigus (tels que définis par Charclass ()) comme une seule char. Caractéristique la plus demandée # dernièrement, Nouveau dans v0.25 $ dict-> squeezfblanks; # similaire à la limite méthode, sauf que la limite réelle est # considérée comme ayant lieu juste avant le caractère limite. Ceci est utile # lorsque le caractère limite lui-même doit être adapté au début d'une correspondance. # Par exemple afin de rechercher '-foo' dans 'bar-foo', la classe # suivante doit être définie $ dict-> incloundary ('-'); ce module fournit des installations pour une recherche rapide sur des chaînes avec de nombreuses clés de recherche. L'objet de base se comporte un peu comme un hachage de perl, Sauf que vous pouvez récupérer en fonction d'une superstring de toutes les clés stockées. Sans simplement scanner une chaîne comme indiqué ci-dessus et vous récupérerez un hachage de perl (ou une liste) de toutes les touches trouvées dans la chaîne (ainsi que des valeurs associées et / ou des positions). . Toutes les clés présentes dans le texte sont retournées. Il y a plusieurs façons d'influencer le comportement du match, c Hiefly par l'utilisation de plusieurs types de classes de caractères mondiaux. Celles-ci sont différentes des classes d'expression régulières, en ce sens qu'elles s'appliquent à l'ensemble du texte et pour toutes les clés. Celles-ci consistent en la classe "Ignorer", la classe "limite", la classe "Inflboundary", ainsi que les classes définies par l'utilisateur.Utilisant des caractères "ignorer" que vous pouvez afficher la numérisation prétendre qu'un caractère dans le texte n'existe tout simplement pas. Ceci est utile si vous souhaitez éviter de joindre votre texte. Donc, par exemple, si la période "". est dans votre classe "ignore", le texte sera traité exactement comme si toutes les périodes avaient été supprimées .Pour définir les caractères pouvant compter en tant que délimiteur de n'importe quelle correspondance (espace unique par défaut) Vous pouvez utiliser la classe "limite". Par exemple, vous pouvez compter la ponctuation comme une limite et les expressions menées à la fin par ponctuation correspondent à la ponctuation. Les classes de caractères définies par l'utilisateur peuvent être utilisées pour compter différents caractères. Par exemple, cela est utilisé en interne pour implémenter une correspondance insensible à casse-insensible. Cordes UNICODE / UTF8. Texte :: Scan Acts au niveau de l'octet, il n'est donc pas conscient de rien sur les chaînes codées UNICODE / UTF8. Si vous traitez de telles chaînes, il est recommandé de donner des cordes d'octets au texte :: Scan à l'aide de l'encode :: encod_utf8 (). Texte :: La numérisation vous donnera ensuite des clés trouvées sur Octets, UTF8. Exigences: · Guitone


Texte :: Scan Logiciels associés