Как получить текст из квадратных скобок?
Есть строка вида:
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