加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl正则表达式匹配最接近

发布时间:2020-12-15 23:26:48 所属栏目:大数据 来源:网络整理
导读:我正试图从最后一个项目壁橱到最后一个单词匹配. 例如,最接近狗的b “abcbdog” 应该是“bdog” 但相反,我得到“bcbdog” 我怎样才能匹配“狗”之前的最后一次出现“b” 这是我目前的正则表达式: /b.*?dog/si 谢谢! 解决方法 正则表达式想要从左到右但你想
我正试图从最后一个项目壁橱到最后一个单词匹配.

例如,最接近狗的b

“abcbdog”

应该是“bdog”

但相反,我得到“bcbdog”

我怎样才能匹配“狗”之前的最后一次出现“b”

这是我目前的正则表达式:

/b.*?dog/si

谢谢!

解决方法

正则表达式想要从左到右但你想要从右到左,所以只需反转你的字符串,反转你的模式,然后反转匹配:

my $search_this  = 'abcbdog';
my $item_name    = 'dog';
my $find_closest = 'b';

my $pattern = reverse($item_name)
            . '.*?'
            . reverse($find_closest);

my $reversed     = reverse($search_this);
$reversed        =~ /$pattern/si;
my $what_matched = reverse($&);
print "$what_matchedn";
# prints bdog

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读