регулярка

Discussion in 'PHP' started by попугай, 16 Jan 2009.

  1. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    есть в тексте такие строки - (23423), (345), (535656) и тд...
    то есть в скобках число, разные знаки...

    Нужна регулярка, чтоб заменять это...

    пробовал так preg_replace("|\(\d\)|", "", $text); - не работает...

    а так - preg_replace("|(\d)|", "", $text); удаляется только цифры, а скобки остаются...

    Что делать?
     
  2. m0nsieur

    m0nsieur Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    '/[0-9()]+/'
    так не пойдет?
     
    2 people like this.
  3. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    Ого, работает...
    А можешь расшифровать? почему скобки вконце стоят?
     
  4. m0nsieur

    m0nsieur Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    Да все просто, [] - пишу чего искать и перечисляю, что искать
    [)0-9(] можно хоть так написать, не важно где их поставить, главное чтобы они указаны были))) а ты указывал в конструкции (\d) - значит запомнить все числа, то что ты скобки таким образом указал - не значит что цифры искать в скобках будут, это зарезервированное обозначение в регулярках (как-то так...хреново я объяснять умею)
     
  5. iron-viper

    iron-viper Elder - Старейшина

    Joined:
    13 Nov 2007
    Messages:
    167
    Likes Received:
    45
    Reputations:
    3
    В квадратных скобках перечислены символы которые должны попадать под шаблон а это : цифры от 0 до 9 и скобки "()"
     
    1 person likes this.
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    http://forum.antichat.ru/thread92492.html
     
  7. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    |\(\d\)|
    тут ты правильно мыслил, только \d отвечает за одну цифру, нужно добавить еще символ повторения +
    |\(\d+\)|
     
  8. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    так будет искать и числа, и скобки, а не числа в скобках
     
    1 person likes this.
  9. m0nsieur

    m0nsieur Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    согласен, тогда так - '/\\(\\d+\\)/'
     
  10. D Mak

    D Mak Elder - Старейшина

    Joined:
    23 Jun 2007
    Messages:
    136
    Likes Received:
    27
    Reputations:
    0
    зачем \\?
    у [dei] все ок