ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php-preg_match_all-正则表达式,用于查找字符串中的完整网址

2019-10-29 20:28:42  阅读:151  来源: 互联网

标签:preg-match-all php


我花了超过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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有