查找/替换特定字符串PHP直到空格

时间:2017-11-21 14:18:09

标签: php string loops replace str-replace

我正在试图弄清楚如何在PHP中找到一个字符串,然后在找到该字符串之后删除所有并发字母,直到最终的空格。

基本上在我的应用程序中,我有一个混合了所有内容的大文本。对于我的输出,我想删除任何带有'@'字符的BEGINS字样。

例如字符串:

这是一个占位符#string,它看起来很好吗?

如何搜索此字符串并仅删除“@great”部分?我不知道@xxx会是什么,所以我首先需要搜索字符串然后替换它。

我知道我可以这样做:

<?php
$string = "This is a placeholder #string and it looks @great right?";
$newstring = str_replace("@great", "", $string);
print $newstring;
?>

但是我不知道@xxx会包含什么或它会包含多长时间。我会知道会有一个最终的休息/空间,这就是我要删除的所有内容。

因此,如果文本包含“@”,则将其与所有并发字母一起找到,直到空格然后删除“@xxx”直到该空格。把一切都留下来。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以使用preg_replace。

这将找到@符号并删除所有字母或数字后加一个空格。

$string = "This is a placeholder #string and it looks @great right?";
$newstring = preg_replace("/@\w+\s/", "", $string);
print $newstring;

https://3v4l.org/OUe87

答案 1 :(得分:-1)

方法1 strpos()的组合,用于定位原始字符串中的位置,然后使用substr()返回所需的字符串。 方法2 你也使用explode()并使用@great作为分隔符,然后分析返回的数组以获得你想要的东西

答案 2 :(得分:-1)

我发现了这个:https://stackoverflow.com/a/5877136/8695939
同样的问题,但 $

  

\ $(\ w +)

     

说明:

     

\ $:逃避特殊的$字符
  ():在这里捕获匹配(至少在大多数引擎中)
  \ w:匹配a - z,A - Z和0 - 9(和_)
  +:任意次数匹配

有帮助吗?

编辑:使用PHP preg-replace