За последние 24 часа нас посетили 55344 программиста и 1725 роботов. Сейчас ищут 856 программистов ...

Помогите составить регулярное выражение

Тема в разделе "PHP для новичков", создана пользователем drakonik999, 15 ноя 2017.

  1. drakonik999

    drakonik999 Активный пользователь

    С нами с:
    5 сен 2017
    Сообщения:
    156
    Симпатии:
    0
    Помогите составить регулярное выражение, что то не выходит (
    нужно чтобы нашло вот это в тексте "|0(и цифра от 0 до 100 )"
    $p = koluno|1;
    и чтобы нашло |1
     
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Вариант от 0 до 999
    Код (Text):
    1. /\|(\d{1,3})/
    Только нужна ли тут регулярка? Может достаточно explode?
     
  3. drakonik999

    drakonik999 Активный пользователь

    С нами с:
    5 сен 2017
    Сообщения:
    156
    Симпатии:
    0
    У меня есть большой массив, и там много таких строчек |1 |312 и тд
    я их потом всех в бд заношу, палочки для того чтобы разбить потом на массив цифры
    Например в колонке dore такие значение |21|23|323523|1|41|
    я их потом с бд беру и заношу в массив разделяя этими палочками.
    а {1,3} это что?
     
  4. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    {1,3} - это количество символов (от 1го до 3х)
    Регулярка Вам для того чтобы строку по символу | разбить на массив? Если да - то тут нужно использовать explode()
    А если из этих элементов надо оставить только те что от 0 до 100 - можно результат explode отфильтровать с помощью array_filter().
     
  5. drakonik999

    drakonik999 Активный пользователь

    С нами с:
    5 сен 2017
    Сообщения:
    156
    Симпатии:
    0
    Спасибо, у меня еще один вопрос, как потом из строки удалить то что я взял?
    например:
    тексткакойто|0
    после обработки
    тексткакойто
     
  6. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Тут можно во время фильтрации все что не число от 0 до 100 сложить в другой массив, который потом склеить в строку с помощью implode()
     
  7. drakonik999

    drakonik999 Активный пользователь

    С нами с:
    5 сен 2017
    Сообщения:
    156
    Симпатии:
    0
    Почему когда я разделяю функцией explode у меня всегда появляется одна пустая строка? для этого приходится обрашатся не с 0 эелемента а с 1
     
  8. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @drakonik999, если у Вас в начале стоит разделитель, то то что перед ним (ничего) попадает в первый элемент массива.
    Например строка:
    Код (Text):
    1. |12|2324|19|54|
    будет преобразована в массив:
    PHP:
    1. ['', '12', '2324', '19', '54', '']
     
    karmay нравится это.