编程语言
首页 > 编程语言> > php-preg_match_all-正则表达式,用于查找字符串中的完整网址

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