2012-07-23 3 views
0

J'ai besoin d'une regex qui m'aide à chercher dans la base de données.Regex: recherche simple regex?

Il devrait être en mesure de le faire:

  1. En Recherche par mot clé. Exemple: ell => Bonjour, Yello, Mellt, ....
  2. Mots similaires: Exemple: or => tenir, Golt, coût, ...

Est-ce possible de faire avec regex?

Si oui, à quoi ressemble cette expression régulière?

Cordialement

+1

Quel type de base de données? Quel genre de langage vous permet de rechercher dans la base de données? – nhahtdh

+0

Est-ce pertinent? Voici le fil d'origine. Voir le bas. Je dois juste placer une regex. http://stackoverflow.com/questions/11609697/expressjs-search-query-api Comme je sais mongoosejs n'a pas une recherche de texte intégral, l'option de recherche – bodokaiser

+0

Il est pertinent, car regex n'est pas la même dans toutes les langues /outils. Si nous connaissons la technologie que vous utilisez, nous pourrions suggérer quelque chose d'autre qui pourrait résoudre votre problème. – nhahtdh

Répondre

1
  1. serait normalement fait par l'opérateur LIKE avec des jokers:

    WHERE column LIKE '%ell%' 
    
  2. peut être fait avec une mesure de similarité de chaîne, telles que la distance Levenshtein. Here est une implémentation pour MySQL en tant que procédure stockée. Cependant, pour presque chaque algorithme de similarité de chaîne "or" et "coût" sont assez éloignés.

+0

Y at-il quelque chose comme LIKE pour mongodb? – bodokaiser

0

Ceci est une question très générale. Je ne peux que recommander une solution simple:

permet d'avoir le premier exemple, vous avez dit:

$your_root = "el" 

alors:

$string =~ /\w*$your_root\w*/ 

matchs çais el lo ', « y el lo 'mais aussi' iafbi342b el erger64 '