3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $regex = "#\b(?:(?:[[:alpha:]]+\://)|www\.)(?:(?:[-[:alnum:]]+\.)*[-[:alnum:]]+(?::\d+)?)(?:/(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/]|(?:%[[:xdigit:]]{2}))*)?(?:\?(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?(?:\#(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?#m"; $unicodeRegex = "#\b(?:(?:[[:alpha:]]+\://)|www\.)(?:(?:[-[:alnum:]]+\.)*[-[:alnum:]]+(?::\d+)?)(?:/(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/]|(?:%[[:xdigit:]]{2}))*)?(?:\?(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?(?:\#(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?#um"; $source = '取りhttp://foo.com/somepathによると'; preg_match_all($regex, $source, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); var_dump($matches[0][0][0]); preg_match_all($unicodeRegex, $source, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); var_dump($matches[0][0][0]); var_dump(PCRE_VERSION);
based on ea878
Output for 7.2.0
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.41 2017-07-05"
Output for 5.5.32 - 5.5.36, 5.6.18 - 5.6.28, 7.0.3 - 7.1.10
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.38 2015-11-23"
Output for 5.4.43 - 5.4.45, 5.5.27 - 5.5.31, 5.6.11 - 5.6.17, 7.0.0 - 7.0.2
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.37 2015-04-28"
Output for 5.4.41 - 5.4.42, 5.5.25 - 5.5.26, 5.6.9 - 5.6.10
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.36 2014-09-26"
Output for 5.5.10 - 5.5.24, 5.6.0 - 5.6.8
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.34 2013-12-15"
Output for 5.3.24 - 5.3.29, 5.4.14 - 5.4.40, 5.5.0 - 5.5.9
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.32 2012-11-30"
Output for 5.3.19 - 5.3.23, 5.4.9 - 5.4.13
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.31 2012-07-06"
Output for 5.3.7 - 5.3.18, 5.4.0 - 5.4.8
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.12 2011-01-15"
Output for 5.3.6
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.11 2010-12-10"
Output for 5.3.4 - 5.3.5
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.10 2010-06-25"
Output for 5.2.14 - 5.2.17, 5.3.3
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(15) "8.02 2010-03-19"
Output for 5.3.2
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(15) "8.00 2009-10-19"
Output for 5.2.10 - 5.2.13, 5.3.0 - 5.3.1
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.9 2009-04-11"
Output for 5.2.7 - 5.2.9
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.8 2008-09-05"
Output for 5.2.6
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.6 2008-01-28"
Output for 5.2.5
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.3 2007-08-28"
Output for 5.2.4
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.2 2007-06-19"
Output for 4.3.0 - 5.2.3
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" Notice: Use of undefined constant PCRE_VERSION - assumed 'PCRE_VERSION' in /in/5dURm on line 14 string(12) "PCRE_VERSION"