簡體   English   中英

正則表達式向后提取字符串

[英]Regex lookbehind to extract string

所以我有這個丑陋的弦,我要摘下電線:

{“ feedtype”:“播放列表”,“ base_url”:“ http://feeds.xhis.com/rteavgen/player/ ”,“ feed_title”:“單項播放列表”,“ feedid”:“播放列表”,“ alt_url “:” http://www.xhis.com/player/#v=10322367 “,”平台“:” iptv“,”當前日期“:” 2014-11-14T12:24:39.84167“,”完整網址“:” http://feeds.xhis.com/rteavgen/player/playlist?type=iptv&showId=10343367 “,”演出“:[{” itemid“:10332367,” showid“:11544367,” valid_start“:” 2014-11- 13T21:37:39”,“ ispodcast”:0,“ programmeid”:1,“ BRINumber”:“ ih011305791”,“ duration”:2053247,“ id”:10323367,“ media:group”:[{“ rte:服務器”:“ http://vod.hds.xhis.com/hds-vod ”,“中”:“視頻”,“網址”:“ / 2014/1113 / 20141113-dumbydoozle_cl10344367_10344406_260_ / manifest.f4m”,“類型”:“ video / mp4”,“ i

這有點像JSONy-不能總是保證我得到的字符串是完整的,因此我無法解析它。 同樣,協議可能會更改。

無論如何,我正在嘗試這樣做:

  • 找到“ manifest.f4m”
  • 提取字符串:“ / 2014/1113 / 20141113-dumbydoozle_cl10344367_10344406_260_ / manifest.f4m”

找到manifest.f4m的位置后,就完成了。


所以我正試圖制定一個正則表達式來可靠地做到這一點,但是我遇到了麻煩。

這是我的正則表達式沙發:

/(?<=\/)manifest.f4m(?=("|\s))/

它與“ manifest.f4m”匹配(后跟一個“或”)。

我有點后顧之憂-我想回到第一個“ /”並提取“ url”指向的整個字符串。

盡管也許有更好的方法來完成所有這些工作?

所以我想出了這個正則表達式:

[-A-Za-z0-9+&@#\/%?=~_|!:,.;]+[-A-Za-z0-9+&@#\/%=~_|]manifest\.f4m(?=("|\s))

看起來效果不錯。

http://regex101.com/r/iT7vG2/2

您能否僅從url:部分開始並使用非捕獲組,我想至少它會出現。我對照您的示例對其進行了測試,並且似乎可以正常工作

\b(?:url.+)(/.+manifest\.f4m)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM