php-preg_match_all-正则表达式,用于查找字符串中的完整网址
作者:互联网
我花了超过4个小时的时间来尝试找到一个php的正则表达式,但没有运气.
我有一个带有html代码的字符串.
它具有许多网址格式,例如:
site*com
http://site*com
http://www*site*com
http://site*com/some.php
http://site*om/some.php?var1=1
http://site*com/some.php?var1=1&var2=2
etc.
我有以下php代码部分工作:
preg_match_all('/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $content, $result, PREG_PATTERN_ORDER);
我唯一需要做的就是还使用“&”捕获具有多个查询字符串的网址
我得到了它们,但还不够完整,我只会收到类似以下内容的信息:
http://site*com/asdad.php?var1=1&
(请注意,将*替换为.我无法发布链接)
左边丢了.
有人可以帮助我将丢失的零件添加到图案中吗?
非常感谢.
解决方法:
好.终于我明白了:
最终的正则表达式代码为:
$regex = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i";
有用.
标签:preg-match-all,php 来源: https://codeday.me/bug/20191029/1962820.html