我已经搜索了一个这样的例子,但似乎无法找到它。
我希望替换字符串的所有内容,但@texthere
$ Input = this is @cool isn't it?
$ Output = @cool
我可以使用@cool
移除preg_replace("/@(\w+)/", "", $Input);
,但无法弄清楚如何做相反的事情
答案 0 :(得分:3)
您可以匹配@\w+
,然后替换原始字符串。或者,如果您需要使用preg_replace
,您应该可以使用第一个捕获组替换所有内容:
$output = preg_replace('/.*(@\w+).*/', '\1', $input);
使用preg_match的解决方案(我认为这会更好):
$matches = array();
preg_match('/@\w+/', $input, $matches);
$output = $matches[0];
上述两种模式都没有解决如何处理多次匹配的输入的问题,例如this is @cool and @awesome, right?