Как получить текст из квадратных скобок?

Есть строка вида:

TestPage[index]

Мне нужно получить только слово index , то есть то которое в квадратных скобках.

В строке квадратные скобки всегда только одни.

Буду благодарен за помощь!


Ответы (1 шт):

Автор решения: DOKL

Используем метод substr(string $string, int $offset, ?int $length = null): string для получения подстроки строки, который возвращает подстроку строки string, начинающейся с offset символа по счету и длиной length символов.

$str = "TestPage[index]";
$offset = strpos($str, "["); // возвращает index "["
$length = strpos($str, "]")-strpos($str, "["); //для нахождения длины строки вычтем из индекса "]" индекс "[", которые найдём при помощи strpos
$result = substr($str,$offset+1, $length-1); // +1 и -1, так как нам не нужно включать "[" и "]"
echo $result; // index

Можно записать сразу так:

$str = "TestPage[index]";
echo substr($str,strpos($str, "[")+1, strpos($str, "]")-strpos($str, "[")-1); //index

Решение через preg_match с использованием регулярного выражения:

$str = "TestPage[index]";
$output_array = array();
preg_match('/(?<=\[).+?(?=\])/', $str, $output_array);
echo $output_array[0]; // index
→ Ссылка