/ / Греп номер квитка з тексту perl - регулярний вираз, perl, grep, цифри

Електронний номер квитка від тексту perl - regex, perl, grep, numbers

Мені потрібно зірвати наступне:
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/