【问题标题】:Regex pattern to find string after second occurrence正则表达式模式在第二次出现后查找字符串
【发布时间】:2021-12-06 18:02:49
【问题描述】:

我有一个像下面这样的字符串。

#EXTINF:-1  tvg-id=ts191  tvg- 
logo=http://188.155.56.49/jumpstart/Temp_Live/cdn/HLS/Channel/imageContent-795-j5m7axrc- 
v1/imageContent-795-j5m7axrc-m1.png   group-title=Entertainment,   DD National
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha 
#KODIPROP:inputstream.adaptive.license_key=https://tatasky.live.ott.irdeto.com/Widevine/getlicense?_session=y249xI2vioV2INEcjlJg4u7JC
https://delta12tatasky.akamaized.net/out/i/3569776.mpd

我正在寻找正则表达式模式来查找licence_key 链接之后的链接。我试过下面的模式,但它只给出第一个链接。

(?<=#KODIPROP:inputstream.adaptive.license_key=).*

我只想要https://delta12tatasky.akamaized.net/out/i/3569776.mpd 作为结果。

可在此处Regexer Link查看实时副本。

【问题讨论】:

    标签: regex


    【解决方案1】:

    您可以使用这个正则表达式在给定的固定模式之后获取下一行:

    #KODIPROP:inputstream\.adaptive\.license_key=.*\r?\n\K.+
    

    RegEx Demo

    如果\K 在您的正则表达式中不可用,则使用:

    #KODIPROP:inputstream\.adaptive\.license_key=.*\r?\n(.+)
    

    并使用捕获组 #1 作为您的链接。

    正则表达式详细信息:

    • #KODIPROP:inputstream\.adaptive\.license_key=:按字面匹配这个前缀文本
    • .*\r?\n:匹配任意文本,后跟换行符
    • \K: 重置比赛信息
    • .+: 匹配任意字符中的 1+

    【讨论】:

    • 你太棒了@anubhava。这是完美的。非常感谢。
    • @CarySwoveland:确实这就是意图。第一个正则表达式不应该是捕获组(已编辑)
    • 您仍然需要在 #2 中进行小幅调整。 :-)
    • 确实你是对的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多