Php 拆下双方括号并保留字符串
我需要删除字符串中的所有方括号并保留字符串。我一直在四处寻找,但是所有的主题OP都想用一些东西替换字符串 So:[[链接到页面]] 应该变成:链接到页面 我想我应该使用php正则表达式,有人能帮我吗Php 拆下双方括号并保留字符串,php,regex,Php,Regex,我需要删除字符串中的所有方括号并保留字符串。我一直在四处寻找,但是所有的主题OP都想用一些东西替换字符串 So:[[链接到页面]] 应该变成:链接到页面 我想我应该使用php正则表达式,有人能帮我吗 提前感谢您可以使用preg\u replace: $repl = preg_replace('/(\[|\]){2}/', '', '[[link_to_page]]'); $repl = str_replace(array('[[', ']]'), '', '[[link_to_page]]')
提前感谢您可以使用
preg\u replace
:
$repl = preg_replace('/(\[|\]){2}/', '', '[[link_to_page]]');
$repl = str_replace(array('[[', ']]'), '', '[[link_to_page]]');
或使用str\u replace
:
$repl = preg_replace('/(\[|\]){2}/', '', '[[link_to_page]]');
$repl = str_replace(array('[[', ']]'), '', '[[link_to_page]]');
试一试
您只需使用str_替换即可
$string = str_replace(array('[[',']]'),'',$string);
但这将得到一个'[['而不是']]'闭包。还有一个没有“[[”开头的“]]”。你想要什么并不完全清楚,但是 如果您只是想“删除所有方括号”,而不必担心配对/etc,那么简单的str_替换即可:
str_replace( array('[',']') , '' , $string )
这不是(也不需要)正则表达式
如果您想要展开包含未知内容的成对双括号,那么您需要的是正则表达式替换,它使用 由于
[
和]
是正则表达式中的元字符,因此需要使用反斜杠对它们进行转义
要匹配双括号文本的所有实例,可以使用模式\[\[\w+\[\]
,要替换这些括号,可以将内容放入捕获组(用括号括起来)并替换所有实例,如下所示:
$output = preg_replace( '/\[\[(\w+)\[\]/' , '$1' , $string );
\w
匹配任何字母数字或下划线-如果您想允许更多/更少的字符,可以对其进行更新,例如\[\[([a-z\-\+)\[\]
或任何有意义的内容
如果要对方括号中的内容执行操作,请参阅。如果只需要一个匹配项:
preg_match('/\[\[([^\]]+)\]\]/', $yourText, $matches);
echo $matches[1]; // will echo link_to_page
或者,如果要从文本中提取所有链接
preg_match_all('/\[\[([^\]]+)\]\]/', $yourText, $matches);
foreach($matches as $link) {
echo $link[1];
}
如何阅读'/\[\[([^\]]+)\]\]\]/'
启动正则表达式/
两个\[\[
字符,但需要转义它们,因为[是元字符[
获取所有非([^\]]+)
两个\]\]
字符,但需要转义它们,因为]是元字符]
结束正则表达式/