php正则表达式字符串替换

标签 php regex string

我有一个像这样的字符串作为脚本的 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”开头并以空格结尾的子字符串。

谢谢

最佳答案

有点像

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 匹配一个空格

Regex Demo

编辑

更好的解决方案如

/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,

Regex Demo

关于php正则表达式字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27500285/

相关文章:

php - 如何从 MySQL 获取高级统计数据?

php - 学说 DQL : DQL Join between 4 entities

c# - 使用正则表达式匹配连字符后的所有内容

php - 匹配必须为 12 个字符长且大写的字符串的前三个字母的正则表达式

c - 我如何制作 strncpy 函数?

c++ - 从输入文件中逐行输入并使用 strtok() 进行标记化,然后输出到输出文件中

javascript - <select> 选项无需 AJAX 即可更改

python - 最大化正则表达式中的子串匹配

c# - 是否有一种直接的方法来组合表示 15 分钟时间 block 的连续字符串值?

php - codeigniter 中的 'Student_Name' 中的未知列 'field list' 文件名 : E:/xampp/htdocs/codeIgniter/CodeIgniter-3. 1.4/system/database/DB_driver.php