Помощь с регляркой

164
.
<?php exit;
Как мне вытащить слово name без скобок, так получается вместе со скобками
$str = '/category/[name]/';
preg_match_all('~\\[[a-z]+\\]~', $str, $matches);
var_dump($matches);

а так получается два варианта [name] и name
$str = '/category/[name]/';
preg_match_all('~\\[([a-z]+)\\]~', $str, $matches);
var_dump($matches);
.
Hey guys! Finally I'm gonna change status!?
preg_match('~\[([^]]+)\]~', $str, $matches);var_dump($matches[0]);
.
<?php exit;
# kantry (25.08.2022 / 23:59)
preg_match('~\[([^]]+)\]~', $str, $matches);var_dump($matches[0]);
Это так же дает массив 
array (size=2) 
 0 => string '[name]' (length=6)
  1 => string 'name' (length=4)
.
kantry
Hey guys! Finally I'm gonna change status!?
galtsev.t, Разве из масива трудно строку выудить?
$matches[0] // vs $matches[1]
.
Строитель
galtsev.t, тебе нужно добиться только одного элемента в массиве?
$str = '/category/[name]/';

preg_match('~\[\K[^]]+~', $str, $matches);

var_dump($matches);
/*
array (size=1)
  0 => string 'name' (length=4) 
*/
.
<?php exit;
# Строитель (28.08.2022 / 00:59)
galtsev.t, тебе нужно добиться только одного элемента в массиве?
$str = '/category/[name]/';

preg_match('~\[\K[^]]+~', $str, $matches);

var_dump($matches);
/*
array (size=1)
0 => string
Нее, у меня там много будет [name] [category] , но я уже документацию прочитал, понял что в preg_match_all два массива потому что первый содержит полные вхождения, второй массив вхождений первой подмаски. Правда я не особо понял что это значит)
.
Строитель
# galtsev.t (28.08.2022 / 10:31)
Нее, у меня там много будет [name] [category] , но я уже документацию прочитал, понял что в preg_match_all два массива потому что первый содержит полные вхождения, второй массив вхождений первой подма
В регулярных выражениях подмаской называют соответствия с шаблоном, который прописан внутри круглых скобок. preg_match() вернёт два элемента массива, если задействовать в регулярном выражении одну подмаску:
$str = '/category/[name]/';

preg_match('~/[^/]+/\[([^]]+)]/~', $str, $matches);

var_dump($matches);
/*
array (size=2)
     0 => string '/category/[name]/'
     1 => string 'name'
*/

Если задействовать две подмаски, то preg_match() вернёт в массив соответствий три элемента:
$str = '/category/[name]/';

preg_match('~/([^/]+)/\[([^]]+)]/~', $str, $matches);

var_dump($matches);
/*
array (size=3)
    0 => string '/category/[name]/' (length=17)
    1 => string 'category' (length=8)
    2 => string 'name'
*/
И так далее.
.
<?php exit;
Кто подскажет 
preg_match('/\\d{1,3}?[-.\\s]?\\d{1,3}?[-.\\s]?\\d{3,4}/', $text, $price);


Находит
15 000 000
4 000 000
4.000.000
10 400
Но не находит 4 цифры подряд
0000
2222
.
Hey guys! Finally I'm gonna change status!?
galtsev.t, Ты бы хоть строку в которой ищешь как пример привел
.
Строитель
galtsev.t, я принципиально не подскажу.
Всего: 23