Книжку умную купил - читаю. Но это не так быстро (лирическое отступление в свое оправдание )
Суть: нужна парочка выражений:
1. если в строке нечетное количество двойных кавычек (") - заменить конец строки \n на \\n и доклеить следующую строку в хвост этой.
2. если символ табуляции \t стоит после нечетного количества двойных кавычек (") от начала строки - заменить на \\t.
Если простыми выражениями этого не сделать - ладно, буду штудировать дальше книжку.
regexp
regexp
С уважением, Ярослав Кавенчук.
- leikind
- Неотъемлемая часть форума
- Сообщения: 811
- Зарегистрирован: 20 июн 2002, 03:02
- Откуда: Брюссель
- Контактная информация:
вот этот регексп
сработает для
Код: Выделить всё
^(\"\")*\"\t
символ табуляции \t стоит после нечетного количества двойных кавычек (") от начала строки
- leikind
- Неотъемлемая часть форума
- Сообщения: 811
- Зарегистрирован: 20 июн 2002, 03:02
- Откуда: Брюссель
- Контактная информация:
Не совсем я правильно ответил - имелась ввиду то строка ,где " могут быть расположены неконтактно. Тогда немного добавим в регексп, чтобы упростить понимание, я считаю не '"', а символ 'a', принцип подсчета нечетности все равно один. Пример на Ruby, но регексп будет работать и в других языках:
выход:
Код: Выделить всё
["qqq", "qqqaqqq", "qqqaqqqaqqq", "qqqqaqqqqaqqqqa"].each{|str|
puts str + " -> " + str.sub(/^([^a]*?a[^a]*?a)*?[^a]*?a[^a]*$/,"нечет")
}
Код: Выделить всё
qqq -> qqq
qqqaqqq -> нечет
qqqaqqqaqqq -> qqqaqqqaqqq
qqqqaqqqqaqqqqa -> нечет