【问题标题】:Find URL and extract its ending查找 URL 并提取其结尾
【发布时间】:2021-05-07 11:50:41
【问题描述】:

我有一个包含多个单词、中断等的字符串。 // 该字符串包含至少两个 URL,我需要在其中获取第一个并提取结尾。

字符串:

Topic: Scall

Some text. Some words. Some some....

Link1: https://test.com/cancel/AA7ES34QSAGF563N
Link2: https://test.com/move/AA7ES34QSAGF563N

我必须找到 Link1 -> https://test.com/cancel/AA7ES34QSAGF563N 然后我需要最后一部分 -> AA7ES34QSAGF563N

字符串经常变化。所以我需要找到一个解决方案,它准确地找到一个以https://test.com/cancel/ 开头的链接(我找到了第一个链接,但如果另一个链接放在字符串中,这将不再有效)。最后一个链接也有可能是我不需要的另一个链接。因此,仅搜索最后一个链接不是一种选择。

我正在使用 zapier,我只能选择使用一行正则表达式来查找值:

有人可以帮我吗?

【问题讨论】:

    标签: regex zapier


    【解决方案1】:

    假设您已经将链接放在字符串变量中,您可以使用内置函数 split()slice notation 来获得您想要的。

    >>> link = "https://test.com/cancel/AA7ES34QSAGF563N"
    >>> id = link.split("/")[-1]
    AA7ES34QSAGF563N
    

    使用正则表达式,您可以通过[^\/]+$ 获得相同的结果(工作示例:https://regex101.com/r/vVWtD0/1

    【讨论】:

    • 不好意思忘了说我用的是zapier,只能加一行regex来找值
    • 我更新了答案以添加正则表达式选项
    • [^\/]+$ 工作得很好!但可能是字符串末尾的最后一个链接是不同的,那么这将不再正常工作。
    • 不确定你的建议,但如果你的意思是 URL 的最后一部分会改变,那么正则表达式仍然可以工作
    • 例如,如果字符串是https://test.com/cancel/AA7ES34QSAGF563N https://test.com/move/AA7ES34QSAGF563N https://google.com/rep/givereputation,它会找到“givereputation”。但我需要“AA7ES34QSAGF563N”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多