使用正则表达式从 Url 字符串中提取唯一 ID

问题描述 投票:0回答:1

如何从 url 字符串中提取字符串“ACB-R5TGDRSAuE76Tt1ZPa5qPv9cp23QLaJfni84B7MXrcI”

“https://lh3.googleusercontent.com/a-/ACB-R5TGDRSAuE76Tt1ZPa5qPv9cp23QLaJfni84B7MXrcI=s120-c-c0x00000000-cc-rp-mo-br100”

此外,url 字符串可以是以下类型: “https://lh3.googleusercontent.com/a/ACB-R5TGDRSAuE76Tt1ZPa5qPv9cp23QLaJfni84B7MXrcI=s120-c-c0x00000000-cc-rp-mo-br100”。

我无法为上述问题制作正则表达式。

我试着制作一个像 (?<=/a/)(.*?)= but did get to the final solution.

javascript java regex string regex-group
1个回答
1
投票
  1. 要匹配前缀但在结果中忽略它,您正在正确使用后向表达式 (
    ?<=
    ),但您只需要告诉它使用
    /a/
    运算符匹配
    /a-/
    |
    。转义特殊字符(例如
    /
    -
    )也是明智的,因此您需要在它们之前添加
    \
    以告诉 Regex 您希望将它们视为普通字符。所以正确的前缀匹配表达式是:
    (?<=\/a\/|a\-\/)
  2. 你不需要
    ?
    里面的
    (.*?)
    因为你知道 ID 中应该有一些字符。只需使用
    (.*)
  3. 要匹配后缀(
    =
    )但在结果中忽略它,需要使用前瞻表达式(
    ?=
    ):
    (?=\=)

最终的正则表达式

(?<=\/a\/|a\-\/)(.*?)(?=\=)
将为您提供您正在寻找的子字符串。

© www.soinside.com 2019 - 2024. All rights reserved.