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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |