Using preg_replace to replace all occurrences in php(使用preg_place替换php中的所有匹配项)
本文介绍了使用preg_place替换php中的所有匹配项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
正则表达式绝对是我的弱点,这一点完全把我难住了。我正在构建一个相当基本的搜索功能,我需要能够基于以下模式更改我的用户输入:
主题:
%22first set%22 %22second set%22-drupal -wordpress
所需输出:
+"first set" +"second set" -drupal -wordpress
我希望我能提供更多帮助,因为我通常至少喜欢发布我到目前为止的解决方案,但在这一点上,我感到困惑。
如有任何帮助,我们不胜感激。谢谢。
推荐答案
preg_replace('/%22((?:[^%]|%[^2]|%2[^2])*)%22/', '+"$1"', $str);
解释:$1是一个反向引用,它引用正则表达式中的第一个()部分,在本例中为((?:[^%]|%[^2]|%2[^2])*)。并且[^%]和之后的(...|...|...)由于贪婪而阻止了其中的%22匹配。请参阅http://en.wikipedia.org/wiki/Regular_expression#Lazy_quantification。
我在一个匹配块注释(/* */)Java CC示例中找到了这种技术,但我找不到任何其他网页来解释它,所以这里有一个更简洁的示例:匹配介于12345之间而中间没有12345的文本块:
这篇关于使用preg_place替换php中的所有匹配项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:使用preg_place替换php中的所有匹配项
基础教程推荐
猜你喜欢
- 如何在 Laravel 中使用 React Router? 2022-01-01
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- 如何替换eregi() 2022-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
