如何使用php删除周围的方括号
我需要一种方法,仅使用php从中删除周围的方括号:如何使用php删除周围的方括号,php,Php,我需要一种方法,仅使用php从中删除周围的方括号: [txt]text[/txt] 所以结果应该是:文本 它们总是成对出现 它们总是在字符串的开头和结尾。Thet将始终是[txt1][/txt1]或[url2][/url2] 我该怎么做?试试这个: preg_replace("/\[(\/\s*)?txt\d*\]/i", "", "[txt]text[/txt]"); 更新: 这将适用于括号中的“whatever”: preg_replace("/\[.+?\]/i", "", "[txt
[txt]text[/txt]
所以结果应该是:文本
它们总是成对出现
它们总是在字符串的开头和结尾。Thet将始终是[txt1][/txt1]或[url2][/url2]
我该怎么做?试试这个:
preg_replace("/\[(\/\s*)?txt\d*\]/i", "", "[txt]text[/txt]");
更新:
这将适用于括号中的“whatever”:
preg_replace("/\[.+?\]/i", "", "[txt]text[/txt]");
试试这个:
preg_replace("/\[(\/\s*)?txt\d*\]/i", "", "[txt]text[/txt]");
更新:
这将适用于括号中的“whatever”:
preg_replace("/\[.+?\]/i", "", "[txt]text[/txt]");
您可以使用正则表达式:
$string = '[whatever]content[/whatever]';
$pattern = '/\[[^\[\]]*\]/i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
这将从字符串中删除所有[任何内容]
。您可以使用正则表达式:
$string = '[whatever]content[/whatever]';
$pattern = '/\[[^\[\]]*\]/i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
这将从字符串中删除所有
[任何内容]
。您不需要使用regexp。您可以先在[]上分解字符串,然后使用结果在[]上分解
使用此方法的优点是它快速且简单。您不需要使用regexp。您可以先在“]上分解字符串,然后使用结果在[]上分解
使用此方法的优点是快速简单。如果您只需要在简单结构的方括号之间获取文本,请尝试以下方法:
$str = '[tag1]fdhfjdkf dfhjdkf[/tag1]';
$start_position = strpos($str, ']') + 1;
$end_postion = strrpos($str, '[');
$cleared = substr($str, $start_position, $end_postion - $start_position);
对于更复杂的结构,此代码不起作用,您必须使用其他方法。如果您只需要在简单结构的方括号之间获取文本,请尝试以下方法:
$str = '[tag1]fdhfjdkf dfhjdkf[/tag1]';
$start_position = strpos($str, ']') + 1;
$end_postion = strrpos($str, '[');
$cleared = substr($str, $start_position, $end_postion - $start_position);
对于更复杂的结构,此代码将无法工作,您必须使用其他方法。方括号是否总是成对出现([thing]…[/thing]?)它们是否总是位于字符串的开头和结尾?它们是否嵌套?它们是否嵌套不正确([thing1]…[thing2]…[/thing1]…[/thing2])?如果是,会发生什么?@Hammerite是的,它们总是成对出现。它们总是在字符串的开头和结尾。它们总是[thing1][/thing1]或[thing2][/thing2]你在找一个吗?如果是的话,那么可能是@Gordon的副本,类似的东西,但我只需要这个特定的部分。方括号是否总是成对出现([thing]…[/thing]?)它们是否总是在字符串的开头和结尾?它们是否嵌套?它们是否嵌套不当([thing1]…[thing2]…[/thing1]…[/thing2])?如果是,会发生什么?@Hammerite是的,它们总是成对出现。它们总是在字符串的开头和结尾。它们总是[thing1][/thing1]或[thing2][/thing2]你在找一个吗?如果是的话,那么可能是@Gordon的副本,类似的东西,但我只需要这个特定的部分。是的,但这只适用于txt,而不适用于括号内的任何东西。我如何才能使它适用于括号内的任何东西?谢谢。@JoseCardama,请查看更新的答案。这将匹配并删除什么内容ever在括号内。但请注意,这也将删除任何不成对的标记。是的,但这只适用于txt,而不适用于括号内的任何标记。我如何使其适用于括号内的任何标记?谢谢。@JoseCardama,请查看更新的答案。这将匹配并删除括号内的任何标记但是请注意,这也会删除任何不成对的标签。糟糕,我在正则表达式中输入了一个错误。现在试试。糟糕,我在正则表达式中输入了一个错误。现在试试。