我需要得到所有记录与iframe元素的属性"src"以"http:"开始。
。
在表"entries"中有一个列"content",它包含HTML字符串。这些字符串可以包含0个或多个iframe元素。
如果在"content"里面有这样的记录:
<iframe title="Some title" src="http://webpage.com" />
应该返回
我目前正在尝试下一个查询,但结果不像预期的那样。
SELECT content FROM entries WHERE content ~ '.*<iframe.*src="http:.*'
您可以使用以下正则表达式:
'<iframe[^>]*src="http:[^>]*>'
这是一个regex的演示(更多regex的细节见右侧窗格)
正则表达式匹配<iframe
,然后匹配>
以外的0个或多个字符,然后匹配src="http:
,然后再匹配>
以外的0个或多个字符,最后匹配>
。
我认为你需要一个这样的正则表达式:
(?i)(<iframe[^>]*title="[^>]*"[^>]*src="[^>]*"[^>]*>)|(<iframe[^>]*src="[^>]*"[^>]*title="[^>]*"[^>]*>)
或
/(<iframe[^>]*title="[^>]*"[^>]*src="[^>]*"[^>]*>)|(<iframe[^>]*src="[^>]*"[^>]*title="[^>]*"[^>]*>)/i
为了更准确的检查,你可以像这样添加空格:
/(<iframe[^>]* title *= *"[^>]*"[^>]* src *= *"[^>]*"[^>]*>)|(<iframe[^>]* src *= *"[^>]*"[^>]* title *= *"[^>]*"[^>]*>)/i