regex - 从 URL 中提取 Google 驱动器文件夹 ID
问题描述
我只是想从一堆不同的谷歌驱动器 URL 中提取谷歌驱动器文件夹 ID
cat links.txt
https://drive.google.com/drive/mobile/folders/1mzr8lgf50p9z6p-7RyHn4XjnyKSvyyuE?usp=sharing
https://drive.google.com/open?id=1_7vwy0-y0BqvPOtG2Or4pvoChnZHrHAx
https://drive.google.com/folderview?id=1rOLhig0g3DdgB9YfvW8HiqRA6o6LxAFF
https://drive.google.com/file/d/1o2J_NwHS3l1-fM71HaDN-xxres1jHkb_/view?usp=drivesdk
https://drive.google.com/drive/folders/0AKzaqn_X7nxiUk9PVA
https://drive.google.com/drive/mobile/folders/0AKzaqn_X7nxiUk9PVA
https://drive.google.com/drive/mobile/folders/0AKzaqn_X7nxiUk9PVA/1re_-YAGfTuyE1Gt848vzTu4ZDC6j23sG/1Ye90fM5qYMYkXp4QMAcQftsJCFVHswWj/149W7xNROO33zaPvIYTNwvtVGAXFxCg_b?sort=13&direction=a
https://drive.google.com/drive/mobile/folders/1nY48t6MATb0XM-iEdeWzEs70qXW2N4Y9?sort=13&direction=a
https://drive.google.com/drive/folders/1M3Xp3xz44NS8QJO5XJT5DK55MohwN6tF?sort=13&direction=a
预期产出
1mzr8lgf50p9z6p-7RyHn4XjnyKSvyyuE
1_7vwy0-y0BqvPOtG2Or4pvoChnZHrHAx
1rOLhig0g3DdgB9YfvW8HiqRA6o6LxAFF
1o2J_NwHS3l1-fM71HaDN-xxres1jHkb_
0AKzaqn_X7nxiUk9PVA
0AKzaqn_X7nxiUk9PVA
149W7xNROO33zaPvIYTNwvtVGAXFxCg_b
1nY48t6MATb0XM-iEdeWzEs70qXW2N4Y9
1M3Xp3xz44NS8QJO5XJT5DK55MohwN6tF
经过一个小时的试验/错误,我确实想出了这个正则表达式 -([01A-Z])(?=[\w-]*[A-Za-z])[\w-]+
除了无法正确处理倒数第三个链接外,它似乎几乎可以正常工作。如果 URL 中有多个嵌套文件夹 ID,我需要输出中最里面的一个。有人可以帮我解决这个错误,如果可以以比我更有效的方式完成,可能会改进正则表达式
解决方案
你可以试试这个sed
:
sed -E 's~.*[/=]([01A-Z][-_[:alnum:]]+)([?/].*|$)~\1~' links.txt
1mzr8lgf50p9z6p-7RyHn4XjnyKSvyyuE
1_7vwy0-y0BqvPOtG2Or4pvoChnZHrHAx
1rOLhig0g3DdgB9YfvW8HiqRA6o6LxAFF
1o2J_NwHS3l1-fM71HaDN-xxres1jHkb_
0AKzaqn_X7nxiUk9PVA
0AKzaqn_X7nxiUk9PVA
149W7xNROO33zaPvIYTNwvtVGAXFxCg_b
1nY48t6MATb0XM-iEdeWzEs70qXW2N4Y9
1M3Xp3xz44NS8QJO5XJT5DK55MohwN6tF
推荐阅读
- netsuite - SuiteScript 2.0 在 Inventory Details 上设置 bin 编号 (binnumber) 引发 INVALID_FLD_VALUE
- python - 为什么我的断路器阈值会影响 MQTT 中的 QoS 1?
- python - 如何遍历导入的 excel 文档中的行并获取字符串值并使用它来命名最终图像输出
- python - Python 项目没有按我的预期工作
- ios - 选择 DatePicker 后,键盘不会关闭
- spring-boot - Spring Boot Admin:没有刷新配置的选项
- c++ - C++ 语法头文件错误
- javascript - 如何将 PDFJS.getDocument 中从 canvas.toBlob() 创建的 url 保存到数组中?
- laravel - 如何使用 Yajra 数据表服务器端创建可点击的链接
- list - 如何将某些值映射到 Prolog 中的列表?