URL 中字母和数字的正则表达式

问题描述

我正在尝试使用 Golang 匹配一些 URL 作为概念证明。我在正则表达式方面不是最好的,我需要一些与反斜杠后面的季号或剧集号相匹配的东西。举个例子:

https://URL.com/program/something-a/s1/e1/title
https://URL.com/program/something-a/e12/title

剧季最多可达到两位数(/s12/s13),剧集最多可达三集(例如 /e100)。这样做的最佳方法是什么?

编辑:这是我到目前为止尝试过的:

(\/s.\/)

(\/e.\/)

似乎适用于单个数字,但不适用于 /e12/ 之类的东西。当我尝试找到两者都匹配的东西时,例如

(\/s[0-9][0-9]\/)

它不会选择只有一个数字(例如 /s2/)的剧集或连续剧。

解决方法

s(\d{1,2})/e(\d{1,3})

工作原理

  • s 匹配字母 s
  • (子匹配捕获组的开始
  • \d 匹配一个数字
  • {1,2} 至少 1 不超过 2 前面的表达式(这是一个数字)
  • ) 捕获组结束
  • / 字面斜线字符
  • e 匹配字母 e

...然后还有另一个序列,但对于 3 位数字,而不是 2 位