Извлечение подстроки, которая обертывается некоторыми символами

Какова наилучшая практика для выбора контента между парой разделителей с использованием регулярного выражения, исключая разделители в PHP и JS ?

aassssd [dddd] fff ffff (delimiter=[..]) output -> dddd aassssd QddddQ fff ffff (delimiter=Q) output -> dddd aassssd RddddQ fff ffff (delimiters=R...Q) output -> dddd aassssd "dddd" fff ffff (delimiter=") output -> dddd 

Концерн об исключении разделителей, выбор цели относительно прост:

 /\"[^"]\"/ //for line four 

Предпочтительно, чтобы решение возвращало масштабирующее устройство. Идеальный ответ использует только RegEx, который можно протестировать в http://regexpal.com/

Я бы использовал не жадные .*? который фиксирует все до конечного разделителя:

 $str = 'aassssd QddddQ fff ffff'; preg_match_all('/[Q](.*?)[Q]/', $str, $out, PREG_PATTERN_ORDER); var_dump($out); 

производит:

 Array ( [0] => Array ( [0] => QddddQ ) [1] => Array ( [0] => dddd ) ) 

Вам нужно будет сбежать с [ и ] разделителями: /[\[](.*?)[\]]/

Это использует единую группу захвата (.*?) Поэтому нужный вам результат находится в позиции 1 в выходном массиве.

 aassssd [dddd] fff ffff (delimiter=[..]) output -> dddd 

RegEx для PHP:

 (?<=\[).*?(?=\]) 

RegEx для JS (также работает на PHP):

 [^\[]*?(?=\])