За последние 24 часа нас посетили 17207 программистов и 1222 робота. Сейчас ищут 1346 программистов ...

Помогите выделить число

Тема в разделе "Регулярные выражения", создана пользователем pr0n1x, 12 дек 2007.

  1. pr0n1x

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

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    Помогите с регулярным выражением.
    Как из следующей строки выделить число:

    Код (Text):
    1. integer-congue-lorem-eget-metus-34.html
    Здесь нужно выбрать число 34.

    Так же строка может быть например такой:
    Код (Text):
    1. integer-congue-42lorem-eget-metus-34.html
     
  2. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    покажи как пробуешь
     
  3. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. $num = (int)substr($str, strrpos($str, '-') + 1);
    Как-нить так можно.
     
  4. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    И что должно быть во втором случае? 34, 42, 4234 или что-то еще?
     
  5. pr0n1x

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

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    В этих двух случаях рег. выражение должно вернуть 34.

    Вообще все строку у меня состоят из 3-х частей.
    1) integer-congue-lorem-eget-metus- или она может быть такой integer-congue-42lorem-eget-metus- ...... это просто название статьи преобразованная по правилам url она может состоять из любых латынских букв и (или) цифр, а так же знак тере(-)

    2) 34, здесь может быть стоять любое положительное целое число, это индекс статьи в базе данных.
    3) .html - это строка всегда идет после индекса статьи.........она идет просто для наглядности, что это html страничка
     
  6. pr0n1x

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

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    Нет, здесь нужно использовать именно рег. выражения, так как это строка будет обрабатываться Mod Rewrite
     
  7. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. ([0-9]+)\.html$
     
  8. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Код (Text):
    1. /(.*?)-(\d+)\.html/i
     
  9. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    Sergey89
    так он никогда ничему не научится :)
     
  10. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    В моём regexp неточность есть, пусть хоть её найдёт :)
     
  11. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    в принципе можно и так:
    Код (Text):
    1. #(\d+)\.html#i