PHP正则表达式字符串替换

3

我有一个字符串,是脚本的json响应:

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, HTTP://unknown/string/in/unknown/place/ , sed do eiusmod tempor incididunt ut labore et dolore magna aliqua"

有没有一种方法可以使用正则表达式和php preg_replace将替换为空字符串?

我不熟悉正则表达式,您能提供一个例子吗?如果可能的话,我基本上需要删除以'http'开头并以空格结尾的子字符串。

谢谢

1个回答

5

类似于这样的内容

preg_replace("/HTTP\S+\s,/", "","Lorem ipsum dolor sit amet, consectetur adipiscing elit, HTTP://unknown/string/in/unknown/place/ , sed do eiusmod tempor incididunt ut labore et dolore magna aliqua" );

将输出为
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua

正则表达式 /HTTP\S+\s,/

  • \S匹配除了空格之外的任何字符

  • \s匹配空格

正则表达式演示

编辑

更好的解决方案如下:

/HTTP\S+(\s,|$)/

这样,链接可以出现在字符串的任何位置,即使在末尾也可以。

例子

preg_replace("/HTTP\S+(\s,|$)/", "","Lorem ipsum dolor sit amet, consectetur adipiscing elit, HTTP://unknown/string/in/unknown/place/" );
=> Lorem ipsum dolor sit amet, consectetur adipiscing elit,

正则表达式演示


另外一个问题:如果我的未知URL在主字符串的末尾,没有空格和斜杠,有办法匹配它吗?如果不行,我会使用字符串分割,但如果有办法,那就更好了,这样我就可以在一个函数调用中匹配所有可能性:“Lorem ipsum dolor sit amet,consectetur adipiscing elit,http://t.co/LjAezrssLM”如果不可能的话,再次感谢! - btb84
@btb84 我稍微编辑了一下我的答案。它可以匹配任何链接。希望能对你有所帮助 :) - nu11p01n73R
非常好,现在它能够正确匹配字符串,并且我的RSS解析器也可以正常工作了!非常感谢我的朋友! - btb84

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接