【问题标题】:Regex starts with ends with正则表达式以开头结尾
【发布时间】:2018-04-01 15:48:24
【问题描述】:

我不知道如何编写一个正则表达式来查找以https:// 开头并以.m3u8 结尾的特定字符串

我设法编写了一个正则表达式,突出显示包含.m3u8 标记的字符串的特定部分

^(.*?(\m3u8\b)[^$]*)$

但我需要编写一个突出显示整个字符串的表达式。

还添加了示例文本

输入

poster":"https://test/four/v1/video-file1/00/00/00/00/00/00/00/10/22/11/102211-480p.mp4/thumb-33000.jpg","content":{"mp4":[],"dash":"https://test/four/v1/video-file1/00/00/00/00/00/00/00/10/22/11/102211-,480,p.mp4.urlset/manifest.mpd","hls":"https://test/four/v1/video-file1/00/00/00/00/00/00/00/10/22/11/102211-,480,p.mp4.urlset/master.m3u8"},"about":"false","key":"4eeeb77181526bedc1025586d43a70fa","btn-play-pause":"true","btn-stop":"true","btn-fullscreen":"true","btn-prev-next":"false","btn-share":"true","btn-vk-share":"true","btn-twitter-share":"true","btn-facebook-share":"true","btn-google-share":"true","btn-linkedin-share":"true","quality":"true","volume":"true","timer":"true","timeline":"true","iframe-version":"true","max-hls-buffer-size":"10","time-from-cookie":"true","set-prerolls":["https://test/j/v.php?id=645"],"max-prerolls-impressions":1});

输出:

https://test/four/v1/video- 
file1/00/00/00/00/00/00/00/10/22/11/102211-,480,p.mp4.urlset/master.m3u8

注意:还有另外两个 HTTP 链接

https://test/four/v1/video- 
file1/00/00/00/00/00/00/00/10/22/11/102211-,480,p.mp4.urlset/manifest.mpd

还有,

https://test/four/v1/video-file1/00/00/00/00/00/00/00/10/22/11/102211-480p.mp4/thumb-33000.jpg

它们不能被正则表达式突出显示,因为它们以 http 开头但不以 .m3u8 结尾

【问题讨论】:

  • 你的意思是https:\/\/(.*)\.m3u8$
  • 不完全。我添加了几个示例供参考,如果您可以验证,谢谢

标签: regex


【解决方案1】:

你可以试试:

https:\/\/[^"]+?\.m3u8

As shown here

解释-

由于您想要的字符串不包含双引号"

[^"]+? 是一个非贪婪(惰性)正则表达式,它匹配https://.m3u8 之间的一个或多个字符,而不是"

请注意我在[^"]+ 之后如何使用?,这样它也不会匹配任何其他链接。

另外,\. 匹配句号,而只有 . 匹配 any 字符。

【讨论】:

  • @dmxyler 如果您认为某个答案对您有所帮助,请考虑将其标记为有帮助,以供将来参考:)
【解决方案2】:

这个怎么样:

https:\/\/.*\.m3u8

它寻找:

  1. 完全匹配 https://
  2. 后跟 .*,表示“任何字符都将匹配...”
  3. 后跟 .m3u8 的完全匹配

这应该突出显示完整的字符串。

【讨论】:

  • 它有效,但如果有多个我不需要的 http 链接(它们不以 .m3u8 结尾),您的代码会找到第一个和以 .m3u 结尾的字符串。我需要找到一个以 .m3u 结尾的字符串,然后检查该字符串是否以 http 开头,如果是这样突出显示它。我也添加了一张图片供参考,请检查是否可以
  • 请发简单的文字,有两个例子,这样解决会更容易。
  • 编辑了 3 个例子。请确认您是否可以感谢您
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 2013-08-04
  • 2013-06-10
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多