如何使用PHP删除周围的Square Brackets

时间:2013-08-17 16:26:21

标签: php

我需要一种方法,只使用php:

从中删除周围的方括号
[txt]text[/txt]

所以结果应该是:text

它们总是以配对形式出现。

它们始终位于字符串的开头和结尾。它总是[txt1] [/ txt1]或[url2] [/ url2]

我该怎么做?

4 个答案:

答案 0 :(得分:1)

试试这个:

preg_replace("/\[(\/\s*)?txt\d*\]/i", "", "[txt]text[/txt]");

更新:

这适用于括号中的“任何”:

preg_replace("/\[.+?\]/i", "", "[txt]text[/txt]");

答案 1 :(得分:0)

您可以使用正则表达式:

$string = '[whatever]content[/whatever]';
$pattern = '/\[[^\[\]]*\]/i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);

这将从字符串中删除所有[whatever]

答案 2 :(得分:0)

您不需要使用正则表达式。你可以先爆炸字符串],然后使用结果在[。

上爆炸

使用此方法的优点是快速而简单。

答案 3 :(得分:0)

如果您只需要在简单结构的方括号之间获取文本,请尝试以下方法:

$str = '[tag1]fdhfjdkf dfhjdkf[/tag1]';
$start_position = strpos($str, ']') + 1;
$end_postion = strrpos($str, '[');
$cleared = substr($str, $start_position, $end_postion - $start_position);

对于更复杂的结构,此代码不起作用,您将不得不使用其他一些方法。