Y at-il un moyen d'obtenir un motif regex pour arrêter automatiquement la recherche après un match. Je voudrais ajouter regex en cherchant un service web que j'essaye de créer, mais je ne veux pas que quelqu'un puisse lancer une regex qui prendrait beaucoup de temps, juste un match est assez bon. Est-ce possible?Comment arrêter la recherche de regex après 1 match sans utiliser de caractère non gourmand
1
A
Répondre
0
Le motif dégénéré vraiment mauvais ne correspond jamais. Et si vous trouvez un bon moyen de trouver les cas dégénérés, eh bien, vous devrez probablement lot of money. Vous êtes probablement mieux avec un délai d'attente. En Perl j'utiliserais alarm
combiné avec un bloc eval
.
Vous pouvez également rechercher (*COMMIT) dans Perl qui empêche le retour arrière.
1
Vous pourriez toujours vous retrouver avec une regex longue durée, même en utilisant un quantificateur limitant.
La mise en œuvre d'une capacité interruptible comme this thread est une autre option.
Questions connexes
- 1. php non gourmand problème regex
- 2. Regex match de question
- 3. Regex numéro match
- 4. $ 1 ne produisant aucun caractère dans regex
- 5. match Regex avec JavaScript
- 6. Regex question match
- 7. Match Question Mark dans la règle mod_rewrite regex
- 8. Regex pour correspondre à un minimum de 1 caractère spécial
- 9. Regex match, assez simple:
- 10. Ruby Regex match de moins échappé avec \
- 11. JavaScript RegEx Elements Match
- 12. Regex Match PHP Commentaire
- 13. C# Regex match de chaîne partielle
- 14. scrape & regex match ne fonctionne pas
- 15. Regex fractionnement des chaînes sur un caractère, non contenu dans()
- 16. Comment faire correspondre et remplacer un caractère non-mot entre des caractères de mot avec RegEx?
- 17. à l'exclusion des caractères \ S regex match de
- 18. javascript substring match après regexp
- 19. Regex Aide à la recherche
- 20. Arrêter caractère générique implicite dans Directory.GetFiles()
- 21. Regex remplace les caractères non-alpha consécutifs par caractère unique
- 22. Comment arrêter ActiveRecord à la recherche d'une table?
- 23. Utilisation de MySQL MATCH pour la combinaison de types de colonnes non sensibles à la casse
- 24. Expression régulière pour extraire le nom de fichier après un caractère et sans extension
- 25. espaces match Regex dans l'attribut html
- 26. IMAP Recherche avec « caractère
- 27. Comment puis-je corriger mon regex pour ne pas trop correspondre avec un quantificateur gourmand?
- 28. Comment utiliser? caractère dans une énumération
- 29. Grep (ou peut-être regex) vérifier le motif sur les lignes avant ou après un match
- 30. Recherche de groupes de lettres avec regex
Votre pire scénario ne sera-t-il pas une personne qui mettra dans une regex complexe qui n'aura PAS de correspondance? Il semble que vous feriez mieux d'utiliser un autre mécanisme pour empêcher les recherches sur les expressions régulières de consommer du temps d'exécution. Alternativement, vous devriez savoir si regex va réellement être un goulot d'étranglement potentiel important avant de pré-optimiser – Jherico