正则表达式 – 反向正则表达式搜索

前端之家收集整理的这篇文章主要介绍了正则表达式 – 反向正则表达式搜索前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个字符串,其中包含“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

猜你在找的正则表达式相关文章