Регулярное выражение для удаление скобок

Unlock
На сайте с 01.08.2004
Offline
757
13862

Подскажите пожалуйста, каким регулярным выражением можно обработать файл для удаления скобок [].

Есть файл которые содержит данные вида [15325-77-83] или [3894-14-8] и т.д. Надо убрать скобки и оставить все остальное, т.е. цифры без изменений. Да и в файле есть записи и без скобок т.е. 388944-19-6, если это может как-то помешать. Количество цифр в скобках может быть разное, но все формируются по виду [число-число-число].

Заранее спасибо.

Есть желание, - тысяча способов; нет желания, - тысяча поводов! /Петр-I/.
D
На сайте с 14.01.2007
Offline
153
#1

если едитор поддерживает регулярки то просто \[|\]. правда это как-то слишком просто...

полное выражение было бы s/\[|\]//

edogs software
На сайте с 15.12.2005
Offline
775
#2

Если нужно просто убрать скобки, то хватит и str_replace

$content=str_replace(array(']','['),array('',''),$content); если на php

А в редакторе так ещё проще - просто замену сделать сначала одной на ничто потом другой.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
Unlock
На сайте с 01.08.2004
Offline
757
#3

Сделать надо в редакторе. Только вариант \[|\]. не очень подходит, т.к. внутри скобок должны быть только числа (и - и больше ничего), иначе под раздачу попадают слова в скобках. Да и \[|\]. находит только левую скобку.

K
На сайте с 31.01.2001
Offline
737
#4

Может имеется в виду, что в файле есть еще угловые скобки, а их убирать не надо?

Тогда как-то так:

s/\[(\d+-\d+-\d+)]/$1/g

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
Unlock
На сайте с 01.08.2004
Offline
757
#5

Что-то я совсем запутался :) Вот такое выражение \[\d+-\d+-\d+] находит точно что надо, но т.к. выделяется вся строка, я не могу удалить скобки, т.к. редактор может только находить с использование регулярных выражение. Находить надо так же, а вот выделять только левую и правую скобку, чтобы я мог ее заменить на ничто. Извините если сразу не правильно задачу описал.

D
На сайте с 14.01.2007
Offline
153
#6

а вариант "заменить сначала одну, а потом другую" не подходит?

Unlock
На сайте с 01.08.2004
Offline
757
#7

Dinozavr, подходит, только находить ее надо именно там где надо, а в файле скобки [] встречаются в разных выражениях, не только в таких примерах как я писал. Поэтому такой вариант \[|\]. не подходит из-за того, что он находит сразу все варианты скобок, а не только тех что нужно. Вообщем можно использовать \[\d+-\d+-\d+] и ручками отредактировать, в файле всего то 250 записей таких :)

edogs software
На сайте с 15.12.2005
Offline
775
#8

Unlock, какой редактор-то?

Если поддерживает замену по регуляркам, то Kost выше правильную идею написал.

Ищите

\[(\d+-\d+-\d+)\]

и заменяете на

\\1

или на

$1

в зависимости от синтаксиса редактора

Unlock
На сайте с 01.08.2004
Offline
757
#9

edogs, все, спасибо что разжевали до конца, теперь все отлично!!!

Всем большое спасибо, выручили меня в очередной раз и спасли от трудоемкой ручной работы. Вот чем мне нравятся программисты, так это умением автоматизировать любой процесс :)

D
На сайте с 14.01.2007
Offline
153
#10

вот теперь я кажется понял, что вам нужно :)

а в вашем редакторе такой вариант проходит?

\[([\d\-]+) заменить на

\1

?

П.С. слишком медленно :D

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий