我正在试图弄清楚如何在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”直到该空格。把一切都留下来。
有什么想法吗?
答案 0 :(得分:2)
您可以使用preg_replace。
这将找到@符号并删除所有字母或数字后加一个空格。
$string = "This is a placeholder #string and it looks @great right?";
$newstring = preg_replace("/@\w+\s/", "", $string);
print $newstring;
答案 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。