|
|
|
| Задача у меня выбрать все, что находится между кавычками. Это не сложно, но есть нюансик. Там может встретиться экранированная кавычка. Она не в счёт. Это вроде бы тоже получилось.
<?
print $text = 'Вот "текст в кавычках. А это \" экранированная \"кавычка." А это опять "текст в кавычках"';
preg_match_all('#"(.*(?<=\\\)"*.*?)"|"([^"]+?)"#uis', $text, $out);
print_r($out[0]);
|
Вот результат:
Array
(
[0] => "текст в кавычках. А это \" экранированная \"кавычка."
[1] => "текст в кавычках"
)
|
Но вот если во втором тексте кавычка с экраном:
<?
print $text = 'Вот "текст в кавычках. А это \" экранированная \"кавычка."
А это опять "текст в кавычках c экранированной \" кавычкой"';
preg_match_all('#"(.*(?<=\\\)"*.*?)"|"([^"]+?)"#uis', $text, $out);
print_r($out[0]);
|
то результат плачевен:
Array
(
[0] => "текст в кавычках. А это \" экранированная \"кавычка."
А это опять "текст в кавычках c экранированной \" кавычкой"
)
|
То есть почему то жадность не работает... Помогите люди добры, мы не местные, потеряли документы(((( | |
|
|
|
|
|
|
|
для: скриншот
(17.12.2009 в 17:41)
| | Это типовая задача.
В своей книге Фридл этому очень много уделяет внимание.
Вот само выражение
"[^"\\\]*(\\\.[^"\\\]*)*"
|
| |
|
|
|
|
|
|
|
для: big-trot
(17.12.2009 в 19:15)
| | Сдорово))) Низкий поклон. А книжку буду сейчас искать. Видно очень хороша. ) | |
|
|
|