如何在匹配关键字后使用preg_replace
删除所有内容?如何删除关键字匹配后的所有内容?
举例来说,如果关键字local
下面的字符串匹配,
home/hello/local/flower/stone/...
然后返回这个唯一的,
home/hello
或者我可以使用任何PHP默认阵列功能?
如何在匹配关键字后使用preg_replace
删除所有内容?如何删除关键字匹配后的所有内容?
举例来说,如果关键字local
下面的字符串匹配,
home/hello/local/flower/stone/...
然后返回这个唯一的,
home/hello
或者我可以使用任何PHP默认阵列功能?
根据你想要做什么,一个简单的strpos + strlen
可以做到这一点。
<?php
$string = "hello/local/flower/stone/...";
$keyword = "local";
echo substr($string, 0, strpos($string, $keyword));
?>
要小心,我认为你总是在字符串的关键字,这可能并非如此。
资源:
<?php
$str = 'hello/local/flower/stone/...';
$find = 'local';
$replaced = preg_replace("#(.*?{$find}).*#", '$1', $str);
var_dump($replaced);
?>
如果你想用正则表达式(绝对不推荐),我建议你添加preg_quote(以防万一) – 2012-02-14 17:08:54
谢谢阿拉姆。对不起,我真的想删除'关键字'... – laukok 2012-02-14 17:11:00
我遇到了问题一旦替换字符串包含意想不到的反向引用。 http://ak.net84.net/php/the-horrors-of-using-preg_replace/ – 2012-02-14 17:14:36
感谢您的回答,科林! :-) – laukok 2012-02-14 17:12:34
我不好,我刚才在下面看到你的评论,删除strlen部分也删除关键字。我只是更新了它,但是你可能想用substr来更多地调整结果。 – 2012-02-14 17:14:00
对不起,我需要删除包括'关键字'以及... – laukok 2012-02-14 17:19:31