Comment générer au hasard des chaînes qui correspondent à une expression régulière?

Double:

Chaîne de caractères aléatoires qui correspond à une expression régulière

Non, il n'est pas. Je suis à la recherche d'un moyen facile et universelle de la méthode, celle que j'ai pu le mettre en œuvre. C'est beaucoup plus difficile que génère aléatoirement des mots de passe.


Je veux créer une application qui prend une expression régulière, et montre 10 généré de façon aléatoire chaînes qui correspondent à l'expression. Il est censé aider les gens à mieux comprendre leurs expressions régulières, et de décider à savoir si elles sont suffisamment sécurisé pour des fins de validation. Quelqu'un sait-il d'un moyen facile de le faire?

Une solution évidente serait d'écrire (ou voler) une regexp parser, mais qui semble vraiment au dessus de ma tête.

Je le répète, je suis à la recherche d'un facile et universelle façon de le faire.

Edit: approche par force Brute est hors de question. En supposant que les chaînes aléatoires serait juste [a-z0-9]{10} et 1 million d'itérations par seconde, il faudrait 65 ans pour itérer la traversée de l'espace de tous les 10 caractères les chaînes de caractères.

  • Je ne pense pas qu'il va y avoir un moyen facile de le faire... peut-être le mechanical turk? 🙂
  • Avez-vous un particulier regex dans l'esprit, ou êtes-vous après une solution générale pour toutes les regex variante? Parce que vous n'allez pas en trouver un qui fonctionne pour Perl ainsi que .NET, sauf si vous vous limitez à vraiment des expressions régulières sans aucune extension.
  • Eh bien, je voudrais une solution générale pour une seule variante, notamment celui que j'utilise, les Expressions Régulières de Perl implémentation en PHP.
  • En général, le problème est #P-dur. researchgate.net/publication/...
  • Voir aussi étant Donné une expression régulière, comment pourrais-je générer toutes les chaînes qui correspondent à elle?