moteur de recherche d'expression régulière [fermé]
y a-t-il un moteur de recherche, qui me permettrait de chercher par une expression régulière?
7 réponses
Google Code Search vous permet d'effectuer une recherche à l'aide d'une expression régulière.
pour autant que je sache, il n'existe pas de moteur de recherche de ce type pour les recherches générales.
il y a quelques problèmes avec les expressions régulières qui interdisent actuellement leur emploi dans des scénarios réels. Le plus urgent serait que l'ensemble de L'Internet mis en cache devrait être apparié avec votre regex, ce qui nécessiterait des ressources informatiques importantes; les index sont assez inutiles dans le contexte regex, il semble, en raison de regex étant potentiellement non lié (/fo*bar/).
je n'ai pas de moteur spécifique à suggérer.
cependant, si vous pouviez vivre avec un sous-ensemble de syntaxe regex, un moteur de recherche pourrait stocker des jetons supplémentaires pour correspondre efficacement des expressions plutôt complexes. Solr / Lucene permet la tokenisation personnalisée, où le même mot peut générer plusieurs tokens et avec divers ensembles de règles.
J'utilise mon nom comme exemple: "Mark marque l'endroit."
cas insensible avec bourrage: (marque, marque, spot)
sensible à la casse sans lemmatisation: (Marque, marques, spot)
sensible à la casse avec la PNL de dictionnaire des synonymes expansion: ( [Marque, Marc], [marquer, indiquer, à point], [spot, la position, l'emplacement, la balise de détresse, de coordonner] )
et évoluant maintenant vers votre question, insensible à la casse, émoussant, dedupe, autocomplete matching prefix: ([m, ma, mar, mark], [s, sp, spo, spot] )
et si vous voulez "substring" style correspondant à: ( [m, ma, mar, marque de, a, ar, arche, r, rk, k], [s, sp, spo, spot, p, po, pot, o, ot, t] )
un seul Index de recherche contient toutes ces différentes formes de jetons, et choisissez lesquelles utiliser pour chaque type de recherche.
essayons le mot "Missippi" avec un style regex avec des signes littéraux: [ m, m?, m+, je, moi?, i+, s, ss, s+ ss+ ... ] etc.
les règles réelles dépendraient de la regex sous-ensemble, mais espérons que le modèle devient plus clair. Vous vous étendriez encore plus pour faire correspondre d'autres fragments regex, puis utilisez une forme de recherche de phrase pour trouver des correspondances.
bien sûr, l'indice serait très grand, MAIS il pourrait être utile, en fonction des exigences du projet. Et vous aurez aussi besoin d'un analyseur de requête et d'une logique d'application.
je me rends compte que si vous cherchez un moteur En Conserve cela ne le fait pas, mais en termes de théorie c'est comment je l'aborderais (en supposant que c'est vraiment une exigence!). Si tout ce que quelqu'un voulait, c'était une sous-chaîne de correspondance et un joker flexible, vous pourriez vous en tirer avec beaucoup moins de jetons dans l'index.
en termes d'applications en conserve, vous pouvez consulter OpenGrok, utilisé pour l'indexation de code source, qui n'est pas pleinement regex, mais comprend assez bien le code source.
si regex absorbe trop de ressources, pourquoi ne pas facturer son utilisation par cputime au lieu de la rendre totalement indisponible? Je suis sûr que certaines personnes paieraient et s'en serviraient (et bien sûr proposeraient une explication pour la charge, expliqueraient en termes d'empreinte carbone et de ressources cpu). Google ne supporte expansive * dans ses recherches *go
ou go*
ou intitulé: "*go"
ici, il est: http://www.hackcollege.com/blog/2011/11/23/infographic-get-more-out-of-google.html
Un très bon article sur les regex de recherche sur un trigramme index par Russ Cox
http://www.google.com/codesearch a été arrêté...
expression Régulière recherche prend beaucoup de ressources et n'est donc pas affordale par les moteurs de recherche populaires.