$status['Совершенно_новое'] = 'Brand_new<br>New'((?<=\$status\[')([а-яА-ЯёЁa-zA-Z]+?.*')([A-za-z]+?.*)(?=')$str = "$status['Совершенно_новое'] = 'Brand_new<br>New'";
$pattern = "(?<=\$status\[')([а-яА-ЯёЁa-zA-Z]+?.*')([A-za-z]+?.*)(?=')";
preg_match($patern, $str, $matches);
var_dump($matches);
// полный match и группы\$status\['([^']+)'\][^']*'([^']*)'
как выделить нужную группу в данном случае группу 2что значит "выделить"? PHP ничего не выделяет, у него графики вобще нет.
$matches[2], это же очевидно, если прочесть документацию по ссылке, которую я скинул, или воспроизвести код, который я приложил. $status['Совершенно_новое'] = 'Brand_new<br>New' Просто я не знаю как это написать возможно не группами но мне нужно выделить именно текст после открытия 2 группы кавычек исключая первую но участвующую в поиске как направляющую. Документацию читаю но понять не могу как это написать. :(
Совершенно_новое'] = 'Brand_new<br>New'
\K стирает то, что не в группе, но результат все-еще будет на той же позиции (в $matches[1], например), а "full match" будет пустой строкой. Как я понял, автор пользуется не языком PHP, а каким-то функционалом в редакторе. Все-же не ясно что не так с вариантом без \K, т.к. в редакторах так же есть доступ к группам, если есть функционал регулярок. Только не понятно как именно автор этим пользуется, ответ получился какой-то магией, т.к. что все-таки подразумевается в вопросе - не понятно.
добавление \K стирает то, что не в группе,
(?:'...|"...)\$status\['[^']+'\][^'"]*(?:'\K(?:[^']|'')+|"\K[^"]+)(?:'...|"...) тыркаюсь, но у меня лишнее захватывает, то есть то что слева до знака равно тоже. [''8''] и 'Brand_new<<' New'>>New'