Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.218.146] |
|
Сообщ.
#1
,
|
|
|
Приветствую
Я пишу скрипт, который будет размечать логи из квипа bb-тегами. Почему-то замена подстрок происходит не совсем корректно. source = "source.txt" dest = "dest.txt" talker1 = /(Mr. A \((\d*:?)* (\d*\/?)*\))/ talker2 = /(Ms. B \((\d*:?)* (\d*\/?)*\))/ text = ""; File.open(source).each { |line| text << line puts line text.gsub!(talker1, "[font color=blue][b]\1[/b][/font]") text.gsub!(talker2, "[font color=red][b]\1[/b][/font]") text.gsub!("\n\n\n", "\n\n") } File.open(dest, "w") { |f| f.puts text } Не могли бы вы подсказать, где я налошил? |
Сообщ.
#2
,
|
|
|
Покажи несколько строк логов, и что в результате получается.
|
Сообщ.
#3
,
|
|
|
Входные данные и результаты таковы:
Цитата До Mr. A (23:37:12 20/05/2010) Привет Mr. A (23:37:14 20/05/2010) Как дела? Ms. B (23:37:22 20/05/2010) Нормально Цитата После [font color=blue] [/font] Привет [font color=blue] [/font] Как дела? [font color=red] [/font] Нормально Тег [ b] проходит, просто не отображается на форуме |
Сообщ.
#4
,
|
|
|
text.gsub!(talker1, "[font color=blue][b]\1[/b][/font]") text.gsub!(talker2, "[font color=red][b]\1[/b][/font]") В регекспы не вчитывался пока, но попробуй для начала заменить двойные кавычки на одинарные -- в двойных \ -- это управляющий символ, а в одинарных он игнорируется. |
Сообщ.
#5
,
|
|
|
Кстати, сама регулярка работает (проверял на питоне).
|