正则表达式 – 反向正则表达式搜索
发布时间:2020-12-14 05:46:17 所属栏目:百科 来源:网络整理
导读:我有一个字符串,其中包含“foo”后跟数字.我想在字符串中的最后一个foo后打印数字.我被告知,实现这一目标的唯一方法是扭转字符串本身.这不是很优雅,我很惊讶Perl没有更好的方法来完成工作.有没有比这更好的方法呢? #!/usr/bin/perl# works,but is ugly!!!$s
我有一个字符串,其中包含“foo”后跟数字.我想在字符串中的最后一个foo后打印数字.我被告知,实现这一目标的唯一方法是扭转字符串本身.这不是很优雅,我很惊讶Perl没有更好的方法来完成工作.有没有比这更好的方法呢?
#!/usr/bin/perl # works,but is ugly!!! $string = "foo1 foo3 foo5 bar foo911 baz"; $string = scalar reverse($string); $string =~ m/(d+)oof/; print scalar reverse("$1"); 解决方法
怎么样:
$string =~ /.*foo(d+)/; 澄清: $string =~ /.* # Match any character zero or more times,greedily. foo # Match 'foo' (d+) # Match and capture one or more digits. /x; 贪婪的“任何角色”匹配将匹配字符串中的第一个“foo”,并且您将只留下匹配最后一个“foo”. 例: #!perl -w use strict; use 5.010; my $string = "foo1 foo2 foo3"; $string =~ /.*foo(d+)/; say $1; 输出: % perl regex.pl 3 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |