2012-01-03 2 views

ответ

1

Loop над входом с:

"([^\\"]*(?:\\.[^\\"]*)*)" 

и захвата первой группы.

Эта конструкция будет обрабатывать встроенные кавычки, а также пустые строки. Если вам не нужны пустые строки, замените первый * на +.

С PHP, это делается с помощью preg_match_all:

preg_match_all('/"([^"]*(?:\\"[^"]*)*)"/', "input here", $matches); 
# use the $matches array 
+0

Я хочу, чтобы это был массив, который я могу разглядеть с помощью foreach. – user998163

+1

См. Править, но вы могли бы узнать сами;) Мне потребовалось 30 секунд поиска Google, и я не знаю PHP;) – fge

0

Если строки не имеют встроенные кавычки, вы могли бы просто использовать "(.*?)". Если это так, то это зависит от того, как вы их цитируете, но "(([^"\\]|\\.)*)" будет обрабатывать строки с косой чертой, такие как "\"\\". (Примечание: ни одна из этих строк сама не цитируется, за исключением обратных косых черт во втором регулярном выражении.)

Смежные вопросы