从图像路径中提取id

我想从 url/filepath 中提取一个 id

路径可以是:

images/tJpwYL9baWgH56USKZwqTz7QM9g1_48x48.png 或者 https://.../.../images/tJpwYL9baWgH56USKZwqTz7QM9g1_150x150.png

我想提取唯一的 ID(在本例中为tJpwYL9baWgH56USKZwqTz7QM9g1)到目前为止我想出了以下表达式:
([^/]+[_$])
这包括 _ ,所以我得到tJpwYL9baWgH56USKZwqTz7QM9g1_

我怎样才能做到这一点并排除_?

回答

您可以使用

([^/]+)_d+xd+.png
[^/]+(?=_d+xd+.png)

看到这个和这个正则表达式演示。细节:

  • ([^/]+) - 捕获组 1:一个或多个字符,而不是 /
  • _ - 下划线
  • d+xd+.png- 一位或多位数字、x一位或多位数字、.png字符串
  • (?=_d+xd+.png) - 正向前瞻,要求上述模式立即出现在当前位置的右侧(因此,匹配的文本不会添加到匹配值中)

此外,您可能会考虑使用更简单的模式,如

([^W_]+)_
[^W_]+(?=_)

看到这个和这个模式演示。该[^W_]+模式匹配一​​个或多个字母或数字,(?=_)匹配紧跟一个_字符的位置。

  • Albeit less efficient I would opt for `[^/]+(?=_d+xd+.png)` so that OP doesn't have to deal with capture groups. https://regex101.com/r/NOcfvv/1

以上是从图像路径中提取id的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>