Comment puis-je convertir une chaîne en une expression régulière qui lui correspond en Perl?Comment puis-je convertir une chaîne en une expression régulière qui lui correspond dans Perl?
J'ai un ensemble de chaînes comme celles-ci:
Enter your selection:
Enter Code (Navigate, Abandon, Copy, Exit, ?):
et je veux les convertir à des expressions régulières Sop je peux correspondre à autre chose contre eux. Dans la plupart des cas, la chaîne est le même que l'expression régulière, mais pas dans le second exemple ci-dessus parce que le (et avoir un sens dans les expressions régulières Alors que la deuxième chaîne doit être devenue une expression comme:.
Enter Code \(Navigate, Abandon, Copy, Exit, \?\):
Je ne ai pas besoin la mise en correspondance trop stricte, donc quelque chose comme ça serait bien:
Enter Code .Navigate, Abandon, Copy, Exit, ..:
Ma pensée actuelle est que je pourrais utiliser quelque chose comme:
s/[\?\(\)]/./g;
bu t Je ne sais pas vraiment quels caractères figureront dans la liste des chaînes et si un caractère spécial me manque, je ne remarquerai peut-être jamais que le programme ne se comporte pas comme prévu. Et je pense qu'il devrait exister une solution générale.
Merci.
Génial, merci et merci à Brad. –