如何通过PHP删除字符串中URL的潜在<p>标签?

时间:2016-04-13 05:20:43

标签: php regex

我需要正则表达式或方式才能找到URLS,如果它们被段落标记包装,请删除段落标记并保留其余内容。

示例

<p>Good morning,</p>

<p>Please watch the following video</p>

<p>https://www.youtube.com/watch?v=ssssssssssssssss</p>

<p>Hope you enjoyed it.</p>

期望的结果

<p>Good morning,</p>

<p>Please watch the following video</p>

https://www.youtube.com/watch?v=ssssssssssssssss

<p>Hope you enjoyed it.</p>

所以基本上,我想要的是URL(不是标签,只是包含标签的普通网址,以便从内容/字符串中删除pargraph标记。

任何解决方案?

非常感谢你!

2 个答案:

答案 0 :(得分:3)

粗略检查网址就足够了。

正则表达式: <p>(?=https?.*www.*\.com)(.*)<\/p>

替换为:替换为在第一个捕获组中捕获了URL的\1$1

<强>解释

  • (?=https?.*www.*\.com)通过检查httpswww.com以及它们之间的字符来确定网址是否存在

  • (.*)在第一个捕获组中捕获整个网址。

<强> Regex101 Demo

答案 1 :(得分:2)

试试这个

  var Firebase = require("firebase");
   var FirebaseTokenGenerator = require("firebase-token-generator");

Regex demo

PHP:

<\w+>((((ftp|http|https):\/\/)|(\/)|(..\/))(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)<\/\w+>