我需要使用iframe元素获取所有记录,其属性为“src”,以“http:”开头。
e.g。
在表“条目”中有一列“内容”,其中包含HTML字符串。这些字符串可能包含零个或多个iframe元素。
如果在“内容”中,记录有这样的内容:
<iframe title="Some title" src="http://webpage.com" />
应该退回。
我目前正在尝试下一个查询,但结果不符合预期。
SELECT content FROM entries WHERE content ~ '.*<iframe.*src="http:.*'
答案 0 :(得分:1)
您可以使用以下正则表达式:
'<iframe[^>]*src="http:[^>]*>'
这是regex demo(有关更多正则表达式详细信息,请参阅右侧窗格)
正则表达式按字面意思匹配<iframe
,然后匹配>
以外的0个或更多字符,然后src="http:
字面意义,然后再次匹配>
以外的0个或更多个字符和最终字符>
。
答案 1 :(得分:0)
我认为你需要这样的正则表达式:
(?i)(<iframe[^>]*title="[^>]*"[^>]*src="[^>]*"[^>]*>)|(<iframe[^>]*src="[^>]*"[^>]*title="[^>]*"[^>]*>)
或
/(<iframe[^>]*title="[^>]*"[^>]*src="[^>]*"[^>]*>)|(<iframe[^>]*src="[^>]*"[^>]*title="[^>]*"[^>]*>)/i
为了更准确地检查,您可以添加如下空格:
/(<iframe[^>]* title *= *"[^>]*"[^>]* src *= *"[^>]*"[^>]*>)|(<iframe[^>]* src *= *"[^>]*"[^>]* title *= *"[^>]*"[^>]*>)/i