Php preg_replace()匹配前的所有内容仅为空白一次

Php preg_replace()匹配前的所有内容仅为空白一次,php,Php,变量值: 1000多行不需要的文本 ABC:必填文本 ABC:更多必填文本 目标是替换第一个“ABC:”之前的所有内容,即将1000多行非必需文本变为空白。据我所知,我需要使用preg_replace(),将参数限制为1 我该怎么做呢 preg_replace("/.*/ABC:" , "ABC:", $string, 1); 当您可以使用时,不需要preg\u replace() echo strstr($string, 'ABC:'); 为什么要为此使用正则表达式?您可以使用strpos

变量值:

1000多行不需要的文本

ABC:必填文本

ABC:更多必填文本

目标是替换第一个“ABC:”之前的所有内容,即将1000多行非必需文本变为空白。据我所知,我需要使用
preg_replace()
,将参数限制为1

我该怎么做呢

preg_replace("/.*/ABC:" , "ABC:", $string, 1);

当您可以使用时,不需要
preg\u replace()

echo strstr($string, 'ABC:');

为什么要为此使用正则表达式?您可以使用
strpos
查找第一个“ABC:”的位置,并从那里剪切字符串。谢谢<代码>回显子序列($variable,strpos($variable,“ABC:”)您的代码几乎正确。第二个
/
应该在字符串的末尾,而不是在
ABC
之前。您需要使用
*?
,这样它将在第一个
ABC:
处停止,而不是最后一个。这很有效。谢谢我真傻,想把事情搞复杂。@user3027056乐意帮忙:)