从字符串中提取 URL

2023-12-02

我正在尝试找到一个可靠的解决方案来从字符串中提取网址。我有一个网站,用户可以在其中回答问题,并在来源框中输入信息来源,我允许他们输入网址。我想提取该网址并将其设为超链接。类似于雅虎问答的做法。

有谁知道可以做到这一点的可靠解决方案?

我发现的所有解决方案都适用于某些 URL,但不适用于其他 URL。

Thanks


约翰·格鲁伯有花了相当多的时间完善“一个正则表达式来统治所有”的链接检测。使用preg_replace()正如其他答案中提到的,使用以下正则表达式应该是检测链接的最准确(如果不是最准确)的方法之一:

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

如果您只想匹配 HTTP/HTTPS:

(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从字符串中提取 URL 的相关文章

  • 对对象数组进行排序

    我在使用 PHP 手册中的示例时遇到了问题 所以我想在这里问这个 我有一个对象数组 有没有办法根据对象的内容对其进行排序 例如我的数组是 Array 0 gt stdClass Object id gt 123 alias gt mike
  • 如何使用 HHVM proxygen 重写规则忽略任何文件?

    我创建一个这样的文件example ini hhvm server type proxygen hhvm server default document index php hhvm virtual host default rewrite
  • PDO::commit 之后使用 PDOStatement::rowCount 结果?

    在 MySQL 文档中 有一个关于使用的注释mysql affected rows事务提交后 http php net manual en function mysql affected rows php http php net manu
  • 如何通过 API 平台使用“paramconverter”?

    如何通过 Symfony API 平台实现或使用 paramconverter 我想在路线上使用实体 ID 并立即生成一个对象 准备在控制器中使用 我没有在这个项目上使用注释 路由配置位于 YAML 文件中 resources App Me
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • Perl 正则表达式匹配模式的多个实例并替换

    我有一个看起来像这样的字符串 abc 1 2 3 something here foo 10 6 34 somethingelse here def 1 2 another 我想将此字符串拆分为一个数组 其中包含 abc 1 2 3 som
  • 如何通过 .htaccess 删除 URL 中任何位置的空参数或参数?

    我的意思是空参数可以在 URL 中的任何位置 每次不同的位置 每次使用不同的名称 每次在不同的 php 页面上 例如 http www example com AnyPHPpageHere php parameter1 7 paramete
  • 如何在 Cakephp 3 中创建按字段集分组的多个复选框

    我在阅读本文档时遇到问题 Cakephp3 Cookbook 表单 创建选择选择器 http book cakephp org 3 0 en views helpers form html creating select pickers我尝
  • 如何在 Perl 中找到正则表达式匹配的位置?

    我需要编写一个接收字符串和正则表达式的函数 我需要检查是否有匹配并返回匹配的开始和结束位置 正则表达式已经由qr 该函数还可能收到一个 全局 标志 然后我需要返回所有匹配的 开始 结束 对 我无法更改正则表达式 甚至无法添加 用户可能使用的
  • Laravel 5 / Codeception 未正确路由

    我正在尝试使用代码接收为控制器函数编写 API 测试用例 但遇到了一个问题 即控制器函数的路由似乎未正确评估 并且评估似乎根据我的不同而不同我的测试用例中有 这是我的测试用例中的代码示例 use ApiTester class Custom
  • 基本的 simpleXML 工作示例?

    看起来 PHP 中的 simpleXML 有很多问题 我在 Windows 上运行最新版本的 php 但无法让 simpleXML 的基本示例按照文档中的方式工作 我的 xml 文件是
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • PHP Netbeans:xdebug 在每个 include() 或 require() 上停止

    我刚刚发现使用 netbeans IDE 中集成的 xdebug 进行 PHP 调试 我认为这很棒 没有它我怎么生活 但有一个问题 如果我在代码深处设置了一个断点 我必须在到达断点之前多次按 继续 F5 因为脚本会在每个 include 和
  • PHP 和 ADODB 连接失败

    我的任务是迁移服务器 这包括移动我没有构建的应用程序 其中一些具有 ADODB connection 我似乎无法在新服务器上修复它 我只得到空白屏幕 我已经对 ADODB connection 与 PHP 进行了相当广泛的研究 但找不到明确
  • 使用 PHP 5.3 ?: 运算符

    有了这个测试页 page int GET page 1 echo page 我不明白页面未定义时得到的输出 Request Result page 2 2 page 3 3 page 1 error Undefined index page
  • xpath+ 正则表达式:匹配文本

    我正在尝试编写一个 xpath 以便仅返回包含文本和数字的节点 我想使用正则表达式并希望这能起作用 td matches text d 谁能帮我理解我在这里做错了什么 tr td 1 td td 10 td td a td tr 你缺少量化
  • zend 模块特定配置问题

    我使用 zend 框架构建 REST Web 服务 并且使用模块来分隔我的 api 版本 现在 我想为每个模块 v1 和 v2 都有一个单独的配置文件 主要用于指定单独的数据库连接 我有这样的目录结构 application modules
  • 从 CodeIgniter 中的 URL 捕获哈希值 (#)

    我有一个看起来像的网址 mysite com transactions view 123456 效果很好 但是我的客户现在希望在 url 中包含 hashbang mysite com transactions view 123456 现在
  • PHP邮件功能有时可以工作

    我正在编写一个脚本 需要通过PHP邮件功能发送电子邮件 如下所示 它在向 gmail 帐户发送电子邮件时有效 但在我的域中的帐户却无效 我们正在运行 Exchange 服务器 截至目前 电子邮件是从 www server 发送的 有谁知道
  • Laravel 集合 .each() + array_push

    需要有关 Laravel 上 each 方法内的 array push 的帮助 我无法在此代码上获取容器数组 imagesData array collect data images gt each function v k use ima

随机推荐

  • 更改滚动图像

    我的网站上有一个固定图像 该图像应该是 动画的 这意味着动画的单个帧应该被迭代 因此 我们的想法是拥有一个图像数组 每次用户滚动时 都会迭代该数组并且显示的图像会发生变化 从而创建动画 我不太习惯使用 JS 因此我真的不知道从哪里开始 我唯
  • 如何在Delphi 7中获取GIT?

    我试图使用以下代码 Delphi 获取全局接口表 uses Comobj ActiveX var cGIT IGlobalInterfaceTable NIL const CLSID StdGlobalInterfaceTable TGUI
  • 正则表达式匹配字符串最后一次出现后的所有内容

    正在努力寻找一种方法来做到这一点 因此感谢任何帮助 在单行上有简单的文本 并希望匹配最终之后的所有文本 tag 我在 Open Office 中使用正则表达式 所以我需要返回直接匹配而不是 JavaScript 数组 字符串看起来像这样 p
  • Python 中使用正则表达式进行字数统计

    使用正则表达式计算文档中英文单词的正确方法是什么 我尝试过 words re findall w open text txt read lower len words 但我似乎遗漏了几个单词 与 gedit 中的字数相比 我做得对吗 多谢
  • 如何用haml每隔几个div插入一个块?

    我想插入一个div row每三个街区wrap three span一起完成以下 haml 片段 但是这段代码插入了一个 div class row div 而不是包裹 span4 data apps applications each wi
  • Structr、现有 Neo4j 安装和 cypher shell

    我的 Windows 7 机器上有以下安装 Neo4j 社区版 3 1 0 结构 ui 2 0 1 我首先安装了 Neo4j 然后安装了 Structr UI 我能够运行 Structr UI 并创建架构 添加节点和关系 我有以下问题 我猜
  • Wix Burn - 自定义模板

    有没有办法改变安装程序中红色的 CD 图片 这是 Burn 项目的代码
  • HDFS Thrift服务器返回本地FS的内容,而不是HDFS

    我正在使用 Thrift 访问 HDFS 这是 HDFS 上预期的 也是正确的 内容 hadoop hdp namenode 01 hadoop fs ls Found 3 items drwxr xr x hadoop supergrou
  • 为什么我的 double 可以包含低于机器 epsilon 的值?

    我正在使用双精度求解方程 我得到 7 07649e 17作为解决方案而不是0 我同意它足够接近 我可以说它是相等的 但是我读到 C 双精度类型的机器 epsilon 是2 52这比我得到的值要大 那么为什么我的值比机器 epsilon 低呢
  • 如何在Python中生成随机字符串?

    如何在 Python 中创建随机字符串 我需要它先是数字 然后是字符 重复直到迭代完成 这就是我创建的 def random id length number 0123456789 alpha abcdefghijklmnopqrstuvw
  • 如何在 Android 中获取电话号码

    我想知道电话号码 我使用了这个示例代码 TelephonyManager tm TelephonyManager getSystemService TELEPHONY SERVICE String strphonenumber tm get
  • 使用 PhaseListener 代替 Servlet Filter 进行授权的限制

    我目前正在使用PhaseListener如下进行用户授权 private PhaseId phaseId PhaseId RESTORE VIEW Override public void afterPhase PhaseEvent eve
  • 浏览器控制台中需要 Javascript

    在浏览器控制台窗口中输入 javascript 时 1 以下代码有效 alert hi 2 以下则不然 function var scr document createElement script scr src http www myra
  • jsf 2.0 Primefaces 多个 Fileupload 不记得上传的文件

    我已经在这篇文章中修复了一些其他问题 fileuploadhandler 现在正在工作 我的代码如下 Bean ManagedBean ViewScoped public class TempBean implements Serializ
  • Laravel 5.6 Passport 驱动程序无法在 socket.io 中工作并给出未经授权的异常

    当驱动程序是 api 时 下面的代码可以完美运行 然后我创建了一个新项目并将驱动程序更改为护照 现在 我总是收到错误 未经授权 我可以确认请求标头在浏览器中具有授权令牌代码 请单击下面的图像进行检查 然后单击缩放以查看质量更好的图像 我在下
  • 规则集中的字体和行高顺序

    我认为规则集中 CSS 的顺序并不重要 只要不存在隐式重复的规则 例如border and border top 事实上 许多 CSS 样式指南建议采用任意顺序 例如 按组 或 按字母顺序 然而 顺序font and line height
  • NSURLConnection 在 GET 上提前关闭

    我正在研究一种集中 URL 连接的方法 用于从服务器发送和接收 JSON 数据 它适用于 POST 但不适用于 GET 我正在使用 Google App Engine 服务器 在我的计算机上它将处理 POST 请求并返回正确的结果 并正确记
  • Jetty:Servlet 无法转发到 JSP

    我遇到以下问题 我尝试将请求从 servlet 转发到 jsp 页面 但收到 404 当我直接访问 sites home jsp 时 它会加载 jsp WebAppContext sites new WebAppContext src co
  • java可执行jar创建

    如何从 java 文件创建可执行 jar 文件 只有一个使用awt和applet创建的java文件dm java 我需要创建带有图标或图像的可执行 jar 单击该 jar 它将作为应用程序打开 这是可能的 请帮我 Using Eclipse
  • 从字符串中提取 URL

    我正在尝试找到一个可靠的解决方案来从字符串中提取网址 我有一个网站 用户可以在其中回答问题 并在来源框中输入信息来源 我允许他们输入网址 我想提取该网址并将其设为超链接 类似于雅虎问答的做法 有谁知道可以做到这一点的可靠解决方案 我发现的所