我需要一种方法,只使用php:
从中删除周围的方括号[txt]text[/txt]
所以结果应该是:text
它们总是以配对形式出现。
它们始终位于字符串的开头和结尾。它总是[txt1] [/ txt1]或[url2] [/ url2]
我该怎么做?
答案 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);
对于更复杂的结构,此代码不起作用,您将不得不使用其他一些方法。