Construisez une expression régulière qui acceptera une chaîne d'expression régulière comme entrée et vérifiez si elle est valide. Fondamentalement, votre expression régulière devrait pouvoir se valider. (Tout regex invalide ne doit pas être validé, vous ne pouvez donc pas l'utiliser .*
.;))
Votre saveur doit être entièrement prise en charge par des implémentations bien connues (Perl, sed, grep, gawk, etc.), et elle doit pleinement prendre en charge ce que ces implémentations prennent en charge. [Ne vous inquiétez pas pour l'avocat qui parle; J'essaie simplement de supprimer toutes les lacunes possibles pour les intelligentes ***.]
Je ferais un code-golf , mais je suis inquiet que ça va donner un avantage à ceux qui connaissent et utilisent les saveurs non-riches en fonctionnalités. Ou mes inquiétudes sont-elles infondées?
la source
Réponses:
Rubis
J'ai essayé de faire correspondre autant que possible la syntaxe réelle de l'arôme regex de Ruby, mais il y a quelques bizarreries: il accepte quelques lookbhinds qui sont en fait invalides (comme
(?<=(?<!))
), et il reconnaît les plages de caractères vides commeD-A
. Ce dernier pourrait être corrigé pour ASCII, mais l'expression régulière est suffisamment longue.Version illisible:
la source