首页 > 解决方案 > 我将使用什么正则表达式来获取此链接的某个部分?

问题描述

https://www.twitch.tv/averagepothead/clip/TiredRoughElkSquadGoals

我想使用正则表达式专门抓取 /clip/ 之后的所有内容,也就是表示剪辑“id”的五个随机词。我一直在这里查找其他示例,但不幸的是,当我基于此编写自己的表达式时,我并没有完全正确……如果有人能够指出我正确的方向,那将是惊人的。谢谢!

标签: javascript

解决方案


正则表达式?可以说是错误的工作工具

const [dontcare, words] = url.split('clip/');

为了说明我的意思,这是一个快速而肮脏的正则表达式版本:

const match = url.match(/[a-zA-Z0-9\/\.:]+clip\/(\w+)/);
const words = match && match[1];

对于这样的基本任务,该正则表达式非常粗糙。你可以让它更短:

/.*clip\/(\w+)/

以使它比现在更慢为代价。正则表达式非常适合不能简单地表示为快速字符串操作的东西,但是对于这样的事情来说,它们比它们的价值要麻烦得多。


推荐阅读