На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Замена регулярок , gsub
      Приветствую :)

      Я пишу скрипт, который будет размечать логи из квипа bb-тегами. Почему-то замена подстрок происходит не совсем корректно.
      ExpandedWrap disabled
        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
        }

      Не могли бы вы подсказать, где я налошил?
      Сообщение отредактировано: Lookin for.. -
        Покажи несколько строк логов, и что в результате получается.
          Входные данные и результаты таковы:

          Цитата До
          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] проходит, просто не отображается на форуме
          Сообщение отредактировано: Lookin for.. -
            ExpandedWrap disabled
                   text.gsub!(talker1, "[font color=blue][b]\1[/b][/font]")
                   text.gsub!(talker2, "[font color=red][b]\1[/b][/font]")


            В регекспы не вчитывался пока, но попробуй для начала заменить двойные кавычки на одинарные -- в двойных \ -- это управляющий символ, а в одинарных он игнорируется.
              Кстати, сама регулярка работает (проверял на питоне).
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0244 ]   [ 15 queries used ]   [ Generated: 27.04.24, 14:34 GMT ]