Это не совсем понятно, что вы хотите - но ...
Если вы просто хотите, чтобы «снять все квадратные скобки», не заботясь о спаривании/и т.д., то простой str_replace сделает это:
str_replace(array('[',']') , '' , $string)
Это не (и не обязательно) регулярное выражение.
Если вы хотите развернуть парные двойные скобки с неизвестным содержимым, вместо этого вам нужно заменить регулярное выражение, которое вместо этого использует preg_replace.
С [
и ]
являются метасимволами в регулярном выражении, они должны быть экранированы обратным слэшем.
Чтобы соответствовать всем экземплярам двойной скобки текста, вы можете использовать шаблон \[\[\w+\[\]
и заменить эти скобки вы можете поместить содержимое в захвате группу (окружив со скобками) и заменить все экземпляры, как так:
$output = preg_replace('/\[\[(\w+)\[\]/' , '$1' , $string);
\w
соответствует любому буквенно-цифровому или подчеркиванию - если вы хотите разрешить больше/меньше символов, он может быть обновлен, например \[\[([a-z\-_]+)\[\]
или что-то имеет смысл.
Если вы хотите воздействовать на содержимое квадратных скобок, см. answer by fluminis.
Вы хотите извлечь link_to_page из полного текста, или вы уверены, что ваша строка начинается с [[и заканчивается]] (т.е. содержит только [[link_to_page]])? – fluminis