Мені потрібно зірвати наступне:
my $string = "Thanks for contacting support. Your ticket number: 123. All the best!"
або
my $string = "Thanks for contacting support. Your ticket #: 123. All the best!
"
Як я можу грепати 123
в змінну $ticket_no
з PERL?
Я думаю, що регулярний вираз повинен бути чимось подібним ticket[ t]+(number|#)?[: t]+([0-9]+)
Це правильно?
Відповіді:
1 для відповіді № 1Так, цей регекс спрацював би. Ви можете використовувати його так:
$string =~ m/ticket[ t]+(number|#)?[: t]+([0-9]+)/;
my $ticket_no = $2;
Зауважте, що ви хочете якось обробити той випадок, що регулярний вираз не зробив матч, оскільки в цьому випадку, $ticket_no
буде невизначеною.
0 для відповіді № 2
Як уже говорив ruakh - ваш регекс спрацював би.
Як підказка: Є багато тестових сайтів для регулярних виразів, які полегшують тестування та оптимізацію регулярних виразів.
Прикладом може бути: http://myregextester.com/