问题描述
我正在尝试使用 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 位