preg_replace是要走的路。它使用正则表达式来匹配输入字符串中的模式(第三个参数),并返回一个字符串,该字符串用替换字符串(第二个参数)替换与模式(第一个参数)匹配的任何内容。
$input = "Lorem ipsum dolor sit amet,[Hello world] consectetur adipiscing elit. Mauris ornare luctus diam sit amet mollis.";
$output = preg_replace('/\[.+\]/', '', $input);
echo $output;
会给你:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ornare luctus diam sit amet mollis.
- 在这种情况下要意识到的重要一点是,您需要使用 a
\
来转义[
and]
字符,因为它们在正则表达式中具有特殊含义。关于正则表达式的 Wikipedia 条目有一个部分介绍了语法并涵盖了其他元字符。
另一个考虑因素是您应该使用+
非贪婪匹配而不是*
因为如果您的输入是:
$input = "Lorem ipsum dolor sit amet,[Hello world] consectetur [test] adipiscing elit. Mauris ornare luctus diam sit amet mollis.";
那么您的输出将删除consectetur
您可能不想要的并给您:
Lorem ipsum dolor sit amet, adipiscing elit. Mauris ornare luctus diam sit amet mollis.