|
|
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
в тексте нужно найти и закомментировать кусок текста такого вида : Код: plaintext 1. 2. 3. 4. Внутри {...} может встречаться любое количество {..}. Скобки могут быть вложенными . Нужно закомментить их все от первой открывающей до соответствующей закрывающей скобки. sed'ом такое навряд ли получится. -- У мудрого человека нет врагов - только учителя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2008, 17:01:32 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
makondo, Так прокатит? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2008, 19:37:15 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
fy, macondo это может быть и пoдойдет, если у него файлов типа: tst1.dat[FIXIED]qwerty qwerty {} test { {qwe {} qwe} {dsad} qwe { qwe } } qwe123 test { {} } или tst2.dat Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2008, 20:04:57 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
avb1003, Это было предложено как вариант. И если Вы, уважаемый, не смогли включить мозг и применить подобный механизм к файлам с другим содержанием, то я Вам сочувствую. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2008, 20:33:23 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
fyavb1003, Это было предложено как вариант. И если Вы, уважаемый, не смогли включить мозг и применить подобный механизм к файлам с другим содержанием, то я Вам сочувствую. Удачи. В том то и дело, что я как раз то смог. И предложил Вам. Но я не предполагал, что это Вам так трудно. Извините. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2008, 20:46:26 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
avb1003, Если не трудно, продемонстрируйте свой вариант для решения подобных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2008, 20:54:07 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
fyavb1003, Если не трудно, продемонстрируйте свой вариант для решения подобных задач. У меня нет "своего варианта для решения подобных задач".Каждая из подобных задач решалась мной по-мере появления адекватно конкретной ситуации, в зависимости от конкретных обстоятельств: объема исходных файлов, важности 100%-ой правильности решения, финансовой мотивированности и т.д. В каких-то ситуациях правил "руками" - в нормальном редакторе это нетрудно, в каких-то использовался вариант типа вашего. Главный недостаток Вашего "варианта" в контексте данного форума- отсутствие указания условий его применимости, и как следствие, опасность, что какой-нибудь HR-гуру посчитает эту задачу, адекватной для собеседования, так как у нее есть "простое решение в одну строку". Что касается возможности решения с помощью регулярных выражений, то я склонен верить Фридлу: "... Итак, ни один из предложенных вариантов не работает. В сущности, проблема в том, что находить конструкции произвольной вложености при помощи регулярных выражений не удается.Это попросту невозможно..." ( Дж.Фридл. "Регулярные выражения. Библиотека программиста" СПб.:Питер, 2001. c.147) Когда же мне, примерно три года назад, нужно было "разбираться" с блоками C-ной программы, то делал "честно": Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. строк, не подходящий для публичной демонстрации. Подозреваю(почти уверен), что задачу топикстартера можно решить скриптом для какого-нибудь VI-подобного редактора, но готового решения у меня нет, равно как и желания сейчас им заниматься. Но если у меня вдруг появится желание и получится "хорошее" решение, то я его приведу, наверное. Если этого не сделает кто-то другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2008, 08:53:04 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
avb1003, Я Вас понял, спасибо за развернутый ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2008, 12:55:36 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
[quote]"... Итак, ни один из предложенных вариантов не работает. В сущности, проблема в том, что находить конструкции произвольной вложености при помощи регулярных выражений не удается.Это попросту невозможно..." ( Дж.Фридл. "Регулярные выражения. Библиотека программиста" СПб.:Питер, 2001. c.147)[/quote] Это ужасно! Мир перевернулся... (( Придется на перле писать Спасибо за ваш sed-скрипт, но почему-то он у меня не работает: Код: plaintext 1. 2. Видимо, мой sed совсем базовый и не понимает, вы скорее всего GNU-шным пользовались ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2008, 14:07:24 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
makondo, авторпочему-то он у меня не работает попробуйте переписать так: Код: plaintext 1. Хотя лучше конечно же написать полноценный скрипт=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2008, 16:33:17 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
fymakondo, авторпочему-то он у меня не работает попробуйте переписать так: Код: plaintext 1. Хотя лучше конечно же написать полноценный скрипт=) Спасибо! Теперь работает. Признаюсь честно, я непонял, как это работает ... ) Можете прокомментировать? Замену s/\(.*\)/#\1/g я понимаю. но что в ней матчится как \(.*\) ? Объясните, плз, первую часть. Хоть убейте не пойму, как он матчит вложенные скобки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2008, 16:44:31 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
makondo, Вложенные скобки определяются как набор символов ".*" (то есть строка состоящая из любого ко-ва любых символов), где их впоследствии и используем как "\1". Слешы пере скобками собственно и нужны для экранирования, так как без них был бы просто набор "(.*)" (то есть со скобками). Примерчик: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2008, 17:09:29 |
|
||
|
[скорее всего perl] Как закоментировать блок текста с вложенными скобками?
|
|||
|---|---|---|---|
|
#18+
makondo, makondo ... Объясните, плз, первую часть. Хоть убейте не пойму, как он матчит вложенные скобки А он и не "матчит". Код: plaintext 1. и кончающийся строкой, первым символом которой стоит символ закрывающей фигурной скобки. Код: plaintext 1. Проще было бы: Код: plaintext 1. Прочитайте мой первый пост. makondo ... Это ужасно! Мир перевернулся... (( Придется на перле писать ... Ничего страшного. Другие же пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2008, 19:06:54 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=35669120&tid=1486321]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 491ms |

| 0 / 0 |
