$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);
$str = '/category/[name]/';
preg_match_all('~\\[[a-z]+\\]~', $str, $matches);
var_dump($matches);
$str = '/category/[name]/';
preg_match_all('~\\[([a-z]+)\\]~', $str, $matches);
var_dump($matches);
preg_match('~\[([^]]+)\]~', $str, $matches);var_dump($matches[0]);
$matches[0] // vs $matches[1]
$str = '/category/[name]/';
preg_match('~\[\K[^]]+~', $str, $matches);
var_dump($matches);
/*
array (size=1)
0 => string 'name' (length=4)
*/
# Строитель (28.08.2022 / 00:59)Нее, у меня там много будет [name] [category] , но я уже документацию прочитал, понял что в preg_match_all два массива потому что первый содержит полные вхождения, второй массив вхождений первой подмаски. Правда я не особо понял что это значит)
galtsev.t, тебе нужно добиться только одного элемента в массиве?
$str = '/category/[name]/';
preg_match('~\[\K[^]]+~', $str, $matches);
var_dump($matches);
/*
array (size=1)
0 => string
# galtsev.t (28.08.2022 / 10:31)В регулярных выражениях подмаской называют соответствия с шаблоном, который прописан внутри круглых скобок. preg_match() вернёт два элемента массива, если задействовать в регулярном выражении одну подмаску:
Нее, у меня там много будет [name] [category] , но я уже документацию прочитал, понял что в preg_match_all два массива потому что первый содержит полные вхождения, второй массив вхождений первой подма
$str = '/category/[name]/';
preg_match('~/[^/]+/\[([^]]+)]/~', $str, $matches);
var_dump($matches);
/*
array (size=2)
0 => string '/category/[name]/'
1 => string 'name'
*/
$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'
*/
И так далее. preg_match('/\\d{1,3}?[-.\\s]?\\d{1,3}?[-.\\s]?\\d{3,4}/', $text, $price);