$re = '/\b\w[-.\w]+\.(com|org|net)\b/m';
$str = 'Test strings
hello.com hello1.com 1hello.com hello-1.com hello-hi1.com 1hello-hi.com h3ll0.com
also matches
hello_1.com
---.com
1234.org
-.net
a.net
abc.comical
www.company.com
this is a sentance about net-working.networking is bla bla bla
will not match other domains
hello.co.uk
hello.co
subdomain.hello.com
correctly grabs the domain for
abc.com&foobar
abc.com/foobar
abc.com?foobar';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php