За последние 24 часа нас посетили 18284 программиста и 1719 роботов. Сейчас ищут 1817 программистов ...

Где ошибка?

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

  1. drwhite

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

    С нами с:
    21 окт 2007
    Сообщения:
    5
    Симпатии:
    0
    Добрый вечер.

    regexp:
    Код (Text):
    1. /‹[BIU]{1,3}.[^›]*›/m
    Если я правильно понимаю это означает, что:
    в строке должно быть , потом от 1 до 3 один из BIU, потом 0 и более любых символов, но кроме и только потом .

    строка:
    Код (Text):
    1. ‹B›Наполняемость ‹I›классов ‹U›12-‹Bt30b-2›16 ‹BIt0b0›чел.‹BU›
    Результат:
    ‹B›Наполняемость ‹I›классов ‹U›12-‹Bt30b-2›16 ‹BIt0b0›чел.‹BU›
    (красным — результат)


    Вопрос: почему он цепляет после В в ‹B›Наполняемость ‹I› и после U в ‹U›12-‹Bt30b-2›?

    *? — не работает

    preg_replace, php 5.1.6
     
  2. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    один любой символ
     
  3. drwhite

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

    С нами с:
    21 окт 2007
    Сообщения:
    5
    Симпатии:
    0
    блин, вместо или поставил и, то есть 0 или более
    то есть если В а потом сразу , то цеплять не должен ведь написано [^›]
     
  4. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    drwhite
    .один любой символ, кроме перевода строки
     
  5. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    А
    это квантификатор *