preg_match返回奇怪的结果

joh*_*ack 1 php regex preg-match

我正在搜索字符串中的网址...而我的preg_match正在为我的演示字符串提供不正确的匹配数量.

串:

嘿那里,请访问www.example.com查看我的网站

功能:

preg_match("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)#ise", $string, $links);
echo count($links);
Run Code Online (Sandbox Code Playgroud)

结果为3.

任何人都可以帮我解决这个问题吗?我是REGEX的新手.

Gum*_*mbo 5

$links子匹配数组:

如果matches提供,则填充搜索结果.$matches[0]将包含与完整模式匹配的文本,$matches[1]将具有与第一个捕获的带括号的子模式匹配的文本,依此类推.

两组的匹配加上完整正则表达式的匹配导致三个数组项.

也许你宁愿使用所有比赛preg_match_all.