ФорумПрограммированиеPHP для идиотов → Помогите с регуляркой

Помогите с регуляркой

  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 24 августа 2011 г. 7:27

    Всем привет.
    Уже больше часа пытаюсь решить элементарнуюзадачу и никак не получается.
    А сделать нужно следующее:
    Есть переменная с текстом $abc = "Вот мой текст[music]1[/music]";
    Нужно получить содержимое между [music] и [/music]
    Пишу следующую регулярку:
    preg_match("#\[music\](\d)\[\/music\]$#Ui", $abc, $board_music);

    Получаем единицу. Если между тегами будет 2 и более цифр то хрен чего получим
    Исправил на
    preg_match("#\[music\](.\d)\[\/music\]$#Ui", $abc, $board_music);

    Две цифры отлично извлекаются, а вот если цифра одна, то хрен.

    Как, блин, любое кол-во цифр извлекать?
    При (.*) вроде всё извлекается, но почему (\d) то не работает? Не хочу после извлечения еще проверку делать число извлеклось или другие символы.
    Спустя 225 сек.
    Мля, кажись надо было писать (\d+)
    from TRIAL with LOVE
  • Sinkler

    Сообщения: 8059 Репутация: N Группа: в ухо

    Spritz 24 августа 2011 г. 7:47, спустя 19 минут 34 секунды

    Мля, кажись надо было писать (\d+)

    да не кажись, а да)))
    Спустя 40 сек.
    точка - любой символ
    + - кол-во >= 1
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 24 августа 2011 г. 8:12, спустя 25 минут 12 секунд

    Не советую использовать \d+ вместе с параметром u, лучше либо его не использовать, либо указать [0-9]+
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2011 г. 8:18, спустя 6 минут

    нда)
    adw/0
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 24 августа 2011 г. 13:18, спустя 5 часов 1 секунду

    Чтобы не подумали что вру - вот отсюда информация:
    http://perldoc.perl.org/perlre.html#Character-set-modifiers

    Similarly, all the characters that are decimal digits somewhere in the world will match \d ; this is hundreds, not 10, possible matches. And some of those digits look like some of the 10 ASCII digits, but mean a different number, so a human could easily think a number is a different quantity than it really is. For example, BENGALI DIGIT FOUR (U+09EA) looks very much like an ASCII DIGIT EIGHT (U+0038). And, \d+ , may match strings of digits that are a mixture from different writing systems, creating a security issue. num() in Unicode::UCD can be used to sort this out.


    PHP использует PCRE (библиотека регулярных выражений perl)
    Спустя 275 сек.
    is the same as /u , except that \d , \s, \w , and the Posix character classes are restricted to matching in the ASCII range only. That is, with this modifier, \d always means precisely the digits "0" to "9"
  • KaFe

    Сообщения: 29 Репутация: N Группа: Кто попало

    Spritz 24 августа 2011 г. 15:24, спустя 2 часа 6 минут 8 секунд

    синий бетмен веселей, перл освоим в два разы быстрей…. синий бетмен :D
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 24 августа 2011 г. 22:59, спустя 7 часов 34 минуты 44 секунды

    Больше всего меня смутило "нда" adword'а ))) Интересно к чему он это?!! ))) К моему вопросу или к совету бетмена :)
    from TRIAL with LOVE
  • Sinkler

    Сообщения: 8059 Репутация: N Группа: в ухо

    Spritz 25 августа 2011 г. 1:51, спустя 2 часа 52 минуты 3 секунды

    Больше всего меня смутило "нда" adword'а ))) Интересно к чему он это?!! ))) К моему вопросу или к совету бетмена :)

    все-таки зная эдво и что он просто так не пишет, то, видимо, был удивлен твоим топиком)))))
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 25 августа 2011 г. 2:01, спустя 10 минут 20 секунд

    Ну не шарю я в регулярках, что ж теперь поделать ))) Вот потихоньку познаю азы когда какая-то задачка возникает :) Не один я такой на пыхе )))
    from TRIAL with LOVE
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 25 августа 2011 г. 2:11, спустя 9 минут 50 секунд

    TRIAL, ты кто по профессии?
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 25 августа 2011 г. 2:29, спустя 18 минут 14 секунд

    web-программист )))
    from TRIAL with LOVE
  • Sinkler

    Сообщения: 8059 Репутация: N Группа: в ухо

    Spritz 25 августа 2011 г. 2:34, спустя 4 минуты 17 секунд

    TRIAL, учитывая, что твой айдишник меньше моего, то
    нда)

    ну ничо, у каждого есть свои слабые места
    Спустя 28 сек.
    :D
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 25 августа 2011 г. 2:37, спустя 2 минуты 58 секунд

    Ага, только на это и остается уповать :) …каждый раз )))
    В принципе, как показывает практика, можно обойтись без знания многих вещей. Говнокод конечно жуткий порой получается, но работает.
    from TRIAL with LOVE
  • qpayct

    Сообщения: 54 Репутация: N Группа: Адекваты

    Spritz 26 августа 2011 г. 3:05, спустя 1 день 28 минут


    Больше всего меня смутило "нда" adword'а ))) Интересно к чему он это?!! ))) К моему вопросу или к совету бетмена :)
    str_replace
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 26 августа 2011 г. 7:44, спустя 4 часа 38 минут 56 секунд



    Больше всего меня смутило "нда" adword'а ))) Интересно к чему он это?!! ))) К моему вопросу или к совету бетмена :)
    str_replace


    и каким тут местом str_replace тебе поможет?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!