Skip to content

Instantly share code, notes, and snippets.

@isaacs
Created March 31, 2009 03:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save isaacs/88027 to your computer and use it in GitHub Desktop.
Save isaacs/88027 to your computer and use it in GitHub Desktop.
<?php
$str = '
<a href="?class=blah">foo</a>
<a href=""><em>foo</em></a>
<a href="bar">Foo</a>
<a href="bar" style="blah" class="foo">Foo</a>
<a href="bar" class="foo">Foo</a>
<a class="foo" href="bar">Foo</a>
<a class="foo">Foo</a>
<a href=\'?class=blah\'>foo</a>
<a href=\'\'><em>foo</em></a>
<a href=\'bar\'>Foo</a>
<a href=\'bar\' style=\'blah\' class=\'foo\'>Foo</a>
<a href=\'bar\' class=\'foo\'>Foo</a>
<a class=\'foo\' href=\'bar\'>Foo</a>
<a class=\'foo\'>Foo</a>
<a href=?class=blah>foo</a>
<a href=><em>foo</em></a>
<a href=bar>Foo</a>
<a href=bar style=blah class=foo>Foo</a>
<a href=bar class=foo>Foo</a>
<a class=foo href=bar>Foo</a>
<a class=foo>Foo</a>
';
preg_match_all('~<a(\s+(?!class=)([^=]+)=(("[^"]*")|(\'[^\']*\')|([^\s>]*)))*?>(.*?)</a>~i', $str, $matches);
var_dump($matches[0]);
// MY REGEX FU IS THE STRONGEST!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment