gpt4 book ai didi

regex - 如何使用 perl 在不应用两次的情况下提取文本,向前看和向后看字符串?

转载 作者:行者123 更新时间:2023-12-05 08:30:31 25 4
gpt4 key购买 nike

我目前有一个字符串:

https://drive.google.com/file/d/j2903r293rj092j3r20/view?usp=sharing

我想从中提取j2903r293rj092j3r20。我在 Mac OS 中使用标准的 perl 安装。我有

URL="https://drive.google.com/file/d/j2903r293rj092j3r20/view?usp=sharing"
echo $URL | perl -pe 's/https\:\/\/drive.google.com\/file\/d\///g' | perl -pe 's/\/view\?usp=sharing//g'

我在前面和后面应用 perl 的地方。有没有一种方法可以一步完成?谢谢

最佳答案

解析 URL 时,最好使用合适的解析器,例如 URI

use strict;
use warnings;
use URI;

my $uri = URI->new("https://drive.google.com/file/d/j2903r293rj092j3r20/view?usp=sharing");
my @path = $uri->path_segments;
print $path[-2];

这打印:

j2903r293rj092j3r20

我想如果你需要在一行中使用它,它会是这样的:

perl -MURI -lne'$u = URI->new($_); print (( $u->path_segments )[-2])'

关于regex - 如何使用 perl 在不应用两次的情况下提取文本,向前看和向后看字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63810166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com