PDA

Просмотр полной версии : регулярка


попугай
17.01.2009, 00:59
есть в тексте такие строки - (23423), (345), (535656) и тд...
то есть в скобках число, разные знаки...

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

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

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

Что делать?

m0nsieur
17.01.2009, 01:05
'/[0-9()]+/'
так не пойдет?

попугай
17.01.2009, 01:07
Ого, работает...
А можешь расшифровать? почему скобки вконце стоят?

m0nsieur
17.01.2009, 01:13
Да все просто, [] - пишу чего искать и перечисляю, что искать
[)0-9(] можно хоть так написать, не важно где их поставить, главное чтобы они указаны были))) а ты указывал в конструкции (\d) - значит запомнить все числа, то что ты скобки таким образом указал - не значит что цифры искать в скобках будут, это зарезервированное обозначение в регулярках (как-то так...хреново я объяснять умею)

iron-viper
17.01.2009, 01:14
Ого, работает...
А можешь расшифровать? почему скобки вконце стоят?

В квадратных скобках перечислены символы которые должны попадать под шаблон а это : цифры от 0 до 9 и скобки "()"

Pashkela
17.01.2009, 01:18
http://forum.antichat.ru/thread92492.html

[dei]
17.01.2009, 11:04
есть в тексте такие строки - (23423), (345), (535656) и тд...
то есть в скобках число, разные знаки...

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

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

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

Что делать?
|\(\d\)|
тут ты правильно мыслил, только \d отвечает за одну цифру, нужно добавить еще символ повторения +
|\(\d+\)|

Ru}{eeZ
17.01.2009, 12:29
'/[0-9()]+/'
так не пойдет?
так будет искать и числа, и скобки, а не числа в скобках

m0nsieur
17.01.2009, 12:37
так будет искать и числа, и скобки, а не числа в скобках

согласен, тогда так - '/\\(\\d+\\)/'

D Mak
17.01.2009, 16:37
согласен, тогда так - '/\\(\\d+\\)/'
зачем \\?
у [dei] все ок