J'ai besoin de grep ce qui suit:
my $string = "Thanks for contacting support. Your ticket number: 123. All the best!"
ou
my $string = "Thanks for contacting support. Your ticket #: 123. All the best!
"
Comment puis-je grep 123
en variable $ticket_no
avec PERL?
Je pense que l'expression rationnelle devrait être quelque chose comme ça ticket[ t]+(number|#)?[: t]+([0-9]+)
Est-ce correct?
Réponses:
1 pour la réponse № 1Oui, cette regex fonctionnerait. Vous pourriez l'utiliser comme ceci:
$string =~ m/ticket[ t]+(number|#)?[: t]+([0-9]+)/;
my $ticket_no = $2;
Notez que vous "voudrez gérer, d’une manière ou d’une autre, le cas où l’expression régulière n'a pas "t correspondre, car dans ce cas, $ticket_no
sera indéfini.
0 pour la réponse № 2
Comme Ruakh l'a déjà dit, votre regex fonctionnerait.
Comme indice: il existe une multitude de sites de test de regex qui facilitent le test et l'optimisation d'expressions régulières.
Un exemple serait: http://myregextester.com/