Please enable JavaScript to use regex101
/
^
r
e
g
e
x
[
\
-
_
]
?
1
0
1
$
/
i
Reg
ular
Ex
pressions
101
Upgrade to Pro
Enterprise
Regular Expression
r"
(?P<content>.*?) # Content up to next tag (?P<markup> # Entire tag <!\[CDATA\[(?P<cdata>.+?)]]>| # <![CDATA[ ... ]]> <!--(?P<comment>.+?)-->| # <!-- Comment --> </\s*(?P<close_tag>\w+)\s*>| # </tag> <(?P<tag>\w+) # <tag ... (?P<attributes> (?P<attribute>\s+ # <snip>: Use this part to get the attributes out of 'attributes' group. (?P<attribute_name>\w+) (?:\s*=\s* (?P<attribute_value> [\w:/.\-]+| # Unquoted (?=(?P<_v> # Quoted (?P<_q>['\"]).*?(?<!\\)(?P=_q))) (?P=_v) ))? # </snip> )* )\s* (?P<is_self_closing>/?) # Self-closing indicator >) # End of tag
"
gsx
Input 1
1
New
In this case, $url will indeed contain http://example.com/whatever.jpg. But what happens when you start getting HTML like this: <img src='http://example.com/whatever.jpg'> or <img src=http://example.com/whatever.jpg> or <img border=0 src="http://example.com/whatever.jpg"> or <img border src="http://example.com/whatever.jpg"> or <img src="http://example.com/whatever.jpg"> or you start getting false positives from <!-- // commented out <img src="http://example.com/outdated.png"> --> <script><![CDATA[ This is <b>not</b> parsed ]]></script> <asd ASD=asd> <!-- // commented out <img src="http://example.com/outdated.png"> --> No quotes: <iframe src=test.html target=xyz></ iframe > Self-closing tag: <a href=test.html target=xyz/> Self closing tag with a space before closure: <a href=test.html target=xyz /> Double quotes: <a href="test.html" target="xyz"> Single quotes: <a href='test.html' target='xyz'> Escaping double quotes: <a href="test.html?val=1" title="\"No rules exist\" Andre Breton's quote"> Escaping single quotes (also with spaces between equals signs): <a href = "test.html?val=1" title = 'Charlie\'s Angels'> Tag without closure (ignored): <a href = "test.html?val=1" title='Charlie\'s Angels' Tag without opening (ignored): a href = "test.html?val=1" title="Charlie\"s Angels">
Substitution