正则表达式获取 iframe 元素的 src

use*_*301 1 regex iframe

我正在尝试从 HTML 输入的不同 iframe 中检索 src 的一部分。

到目前为止,我尝试了不同的方法,但没有一种方法适用于所有 iframe。到目前为止我尝试过的:

<iframe(.*?)><\/iframe>
<iframe src="(.+?)".+</iframe>
<iframe.+?src=[\"'](.+?)[\"'].*?>
Run Code Online (Sandbox Code Playgroud)

这是我拥有的 iframe 标签示例:

<iframe src="http://www.youtube.com/embed/NM51qOpwcIM?modestbranding=1;rel=0;showinfo=0;autoplay=0;autohide=1;yt:stretch=16:9;wmode=transparent;?wmode=transparent" allowfullscreen="" style="width: 640px; height: 361.057px;" frameborder="0"></iframe>

<iframe src="https://www.youtube.com/embed/VASywEuqFd8?feature=oembed" allowfullscreen="" width="660" height="371" frameborder="0"></iframe>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想从开头和第一个问号 (?) 之前检索 src ,如下所示:

http://www.youtube.com/embed/NM51qOpwcIM
Run Code Online (Sandbox Code Playgroud)

谢谢!:)

noz*_*man 8

这可以使用

(?<=src=").*?(?=[\?"])
Run Code Online (Sandbox Code Playgroud)

请参阅Regex101 上的工作示例

解释

  1. (?<=src=") 前置 src="
  2. .*? 懒惰匹配任何令牌
  3. (?=[\?"])直到 a ?or"成为下一个令牌

如果您可能有一个不以 ?

(?<=src=").*?(?=[\*"])