3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $url = 'http://www2.hamilton.ca/NR/HRFormsDocs\Salary-Administration-Policy-Nov2016.pdf'; if(strlen($url) < 1){ return null; } $match = []; $regex = '/(((http|ftp|https):\/{2})+(([0-9a-z_-]+\.)+' . '(aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|' . 'pro|tel|travel|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|' . 'bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|' . 'cr|cu|cv|cx|cy|cz|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|' . 'gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|' . 'im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|' . 'lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mn|mn|mo|mp|mr|ms|mt|mu|mv|mw|mx|my|mz|' . 'na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|nom|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|' . 'qa|re|ra|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|' . 'tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|' . 'vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|arpa|quebec)(:[0-9]+)?' . '((\/([~0-9a-zA-Z\#\&\ \(\)\,\$\£\!\?\"\'\[\]\<\>\+\%@\.\/_-]+))?' . '(\?[0-9a-zA-Z\+\%@\/&\[\];=_-]+)?)?))\b/imuS'; preg_match($regex, $url, $match); print_r($match);
based on RLvmP
Output for 5.6.0 - 5.6.30, hhvm-3.15.4, 7.0.0 - 7.3.0beta1
Array ( [0] => http://www2.hamilton.ca/NR/HRFormsDocs [1] => http://www2.hamilton.ca/NR/HRFormsDocs [2] => http:// [3] => http [4] => www2.hamilton.ca/NR/HRFormsDocs [5] => hamilton. [6] => ca [7] => [8] => /NR/HRFormsDocs [9] => /NR/HRFormsDocs [10] => NR/HRFormsDocs )