Вытащить значение из строки

Тема в разделе "Обо всём", создана пользователем zema50, 23 апр 2021.

  1. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    827
    Симпатии:
    94
    добрый день, есть строка такого типа
    Производитель:Energolux|Серия:Basel|Режимы:охлаждение / обогрев|Охлаждающая способность, BTU:7|Обслуживаемая площадь:20 кв. м|Мощность в режиме охлаждения:2100 Вт|Мощность в режиме обогрева:2200 Вт|Класс энергопотребления:A
    через strpos определяем что в строке присутствует Режимы как вытащить то что идет после : ?
    то есть,
    Режимы:охлаждение / обогрев
    нужно вытащить охлаждение / обогрев
    может как то регуляркой проще чем рнр ?
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    А что тут сложного? Загоняем в массив по разделителю | через explode
    и делаем все что угодно. Хоть поиск по значению, хоть опять через explode создаем новый массив. Да создать функцию которая будет принимать на вход строку, а на выходе будет массив вида ключ - Режимы , значение - охлаждение / обогрев
     
  3. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Код:
    ([|]|^)Режимы:(.*?)[|]
    Код:
    (^|[|])Режимы:(.*?)([|]|$)
     
    Ravilr нравится это.
  4. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    827
    Симпатии:
    94
    если загонять в массив то потом массив по ключу через цикл разбирать, по некоторым причинам цикл не не катит.
    Chukcha, не особо понял как можно это применить.
    если strpos === true то echo то что вы предложили, дает ошибку
    вообще идеально было бы регуляку что то типа
    если в строке присутствует то то, то выводить то то
    :)
     
  5. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Вы просили регулярку?
    Я вам ее показал
    Есть функции PCRE которые с такими выражениями работают


    зы

    хм