Disons que nous avons deux expressions régulières:Comment vérifier la pertinence d'un regexp?
1234.*
et
.*
Entrée:
1234567
Il est évident que les deux match mais 1234. * correspond mieux puisqu'il est plus spécifique. c'est-à-dire est plus pertinent. Existe-t-il un moyen standard de vérifier ce qui est le plus pertinent?
modifier:
Quelques précisions. Je veux prendre des décisions en vérifiant quelle expression correspond le mieux à l'entrée. Dans ce cas, je ne fais que correspondre des nombres.
Exemple avec les numéros de téléphone:
Entrée:
31882481337
Nous avons une règle pour chacune des expressions régulières suivantes:
31.*
.*
Dans ce scénario je voudrais que la règle soit utilisé qui est lié à 31. * parce que c'est plus spécifique pour l'entrée donnée. Si je n'utilisais pas regexps il serait facile, parce que je pouvais utiliser un mécanisme de notation pour vérifier combien il correspond, mais ces règles peuvent avoir des regexps plus avancés, comme:
31[89].*
Semble plutôt subjective. Pouvez-vous clarifier comment la "pertinence" serait quantifiée? Peut-être pas dans cet exemple, mais dans des cas plus complexes, on pourrait dire "plus pertinent". –
@Codebender: J'espère que je me suis fait plus clair maintenant :-) –
Est-ce que 31 [89]. * Est plus ou moins spécifique que 31 [2468] {3}. *? Qu'en est-il de 31?{9} vs 31 \ d {8,10}? –