Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 来自文本perl的Grep票证号_Regex_Perl_Grep_Numbers - Fatal编程技术网

Regex 来自文本perl的Grep票证号

Regex 来自文本perl的Grep票证号,regex,perl,grep,numbers,Regex,Perl,Grep,Numbers,我需要grep以下内容: my$string=“感谢您与支持部门联系。您的票号:123。祝您一切顺利!” 或 my$string=“感谢您联系支持部门。您的票:#:123。祝您一切顺利!” 如何使用PERL将123grep转换为变量$ticket\u no 我认为regexp应该是这样的ticket[\t]+(number |#)?[:\t]+([0-9]+) 是吗?是的,正则表达式可以工作。您可以这样使用它: $string =~ m/ticket[ \t]+(number|#)?[: \t]

我需要grep以下内容:
my$string=“感谢您与支持部门联系。您的票号:123。祝您一切顺利!”


my$string=“感谢您联系支持部门。您的票:#:123。祝您一切顺利!

如何使用PERL将
123
grep转换为变量
$ticket\u no

我认为regexp应该是这样的
ticket[\t]+(number |#)?[:\t]+([0-9]+)


是吗?

是的,正则表达式可以工作。您可以这样使用它:

$string =~ m/ticket[ \t]+(number|#)?[: \t]+([0-9]+)/;
my $ticket_no = $2;

请注意,您可能希望以某种方式处理正则表达式不匹配的情况,因为在这种情况下,
$ticket\u no
将是未定义的。

正如ruakh已经说过的,您的正则表达式可以工作

作为提示:有大量的正则表达式测试站点使得正则表达式的测试和优化变得容易

例如: