Ad Widget

Collapse

Не работает regsub

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • vital8111
    Junior Member
    • Feb 2021
    • 16

    #1

    Не работает regsub

    Добрый день.
    Подскажите, пожалуйста по регуляркам
    Строка вида
    message 1232a2-d32asd-f32asd-321322 created
    Применяю регулярку
    [0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}
    следующим образом
    {{ITEM.VALUE}.regsub("[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}","\1")}
    Почему то нет совпадений
    Применяю для тэга в триггере. Тэг пустой. В имени проблемы та же конструкция - пусто
    В онлайн конструкторе регулярок совпадение то что нужно, а именно uuid из строки.
    В заббиксе же пусто.
    Примеры в документации посмотрел - вроде верно соорудил конструкцию
    Подскажите, пожалуйста, что не так.
    Заранее благодарен.

    ПыСы. Заббикс версии 3.4. Обновиться возможности нет
  • Answer selected by Kos at 22-06-2022, 08:09.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Originally posted by vital8111
    Строка вида
    message 1232a2-d32asd-f32asd-321322 created
    Применяю регулярку
    [0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}
    следующим образом
    {{ITEM.VALUE}.regsub("[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}","\1")}
    Почему то нет совпадений
    "\1" - это подставить то, что попало в первую группу захвата.
    Но у вас в регулярном выражении не определена ни одна группа захвата, поэтому туда ничего и не попадает (хотя само совпадение есть).
    Вы забыли в вашем регулярном выражении ту часть, которую нужно будет подставлять, определить в качестве группы - т.е. заключить в круглые скобки:
    {{ITEM.VALUE}.regsub("([0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6})","\1")}

    Comment

    • vladimir_lv
      Senior Member
      • May 2022
      • 240

      #2
      Понятно, что похоже на шаманство. но попробуйте \1 без кавычек.

      Comment

      • vital8111
        Junior Member
        • Feb 2021
        • 16

        #3
        Originally posted by vladimir_lv
        Понятно, что похоже на шаманство. но попробуйте \1 без кавычек.
        Пробовал. Тоже самое.
        В документации и так и так возможно написание

        Comment

        • Kos
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • Aug 2015
          • 3404

          #4
          Originally posted by vital8111
          Строка вида
          message 1232a2-d32asd-f32asd-321322 created
          Применяю регулярку
          [0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}
          следующим образом
          {{ITEM.VALUE}.regsub("[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}","\1")}
          Почему то нет совпадений
          "\1" - это подставить то, что попало в первую группу захвата.
          Но у вас в регулярном выражении не определена ни одна группа захвата, поэтому туда ничего и не попадает (хотя само совпадение есть).
          Вы забыли в вашем регулярном выражении ту часть, которую нужно будет подставлять, определить в качестве группы - т.е. заключить в круглые скобки:
          {{ITEM.VALUE}.regsub("([0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6}-[0-9a-z]{6})","\1")}

          Comment

          • vital8111
            Junior Member
            • Feb 2021
            • 16

            #5
            Originally posted by Kos
            "\1" - это подставить то, что попало в первую группу захвата.
            Но у вас в регулярном выражении не определена ни одна группа захвата, поэтому туда ничего и не попадает (хотя само совпадение есть).
            Вы забыли в вашем регулярном выражении ту часть, которую нужно будет подставлять, определить в качестве группы - т.е. заключить в круглые скобки:
            Спасибо огромное.
            Все завелось

            Comment

            Working...