Ищу скрипт/программу для различных замен текста по маске

Oneday
На сайте с 12.07.2006
Offline
93
1043

Например, есть у меня текстовый файл с таким содержимым:


(1, 21, 'http://www.site.ru/', 'mail@site.ru', '1160590540', '', 'Озеро Байкал и остров Ольхон', 'Природа Байкала - самого глубокого озера планеты. Статьи о самых красивых местах Священного моря - мысах Хобой, Бурхан, Саган-Хушун, Кобылья Голова, острове Ольхон, утесе Саган-Заба. Фотогалерея байкальских пейзажей. Байкальский форум.\r\n', 1, '', '', 0, 0),
(2, 37, 'http://www.site.ru', 'mail@site.ru', '1160591905', '', 'Психология снов и психоанализ сновидений', 'Психологическая помощь и консультация психотерапевта. Психолог-психотерапевт психоаналитического направления Марина Павлоцкая. Помощь психолога при депрессии и стрессе. Разрешение сексуальных и личных проблем. Труды классиков психоанализа Фрейда и Юнга. Картинная галерея снов и лирика сновидений.\r\n', 1, '', '', 0, 0),
(3, 3, 'http://www.site.info', 'mail@site.by', '1160592108', '', 'Минский городской молодёжный сайт.', 'Русский:\r\nМы приглашаем вас на наш портал!\r\nУ нас всегда свежие и интересные новости города Минска!\r\nВы можете общаться на форуме, знакомиться с девушками и парнями, оставлять там объявления!\r\nВы всегда можете посмотреть фотогалерею Минска, а также добавить туда свои фото.\r\nВы можете узнать погоду в Минске, скачать карту, справочник телефонов Минска, а также узнать курс валют в Беларуси.\r\nУ нас имеется каталог туристических сайтов, куда вы можете добавить свой сайт.\r\n\r\n\r\nEnglish:\r\nWelcome on the portal of Minsk city. \r\nWe always have just interesting news about Minsk city.\r\nYou can talk with other people on the our forume or in the chat, dating with the girls and boys!\r\nYou can always look at the picture gallery of the Minsk and also add your pictures there.', 1, '', '', 0, 0),
(4, 14, 'http://www.site.ua/', 'mail@site.ru', '1160594585', '', 'Новости модинга в Харькове.', 'На сайте присутствуют моддинг статьи, в которых даются описания технологий моддинга компьютеров. Также в статьях мы делимся с Вами своим опытом моддинга. На форуме мы постараемся ответить на все Ваши вопросы.', 1, '', '', 0, 0),

Я хочу удалить все, что находится между символами ( и ', '', '. Или удалить необходимое по такой маске (*,**, 'http://www.site.ua/', (то что отмечено звездочками удаляется; * - любая цифра).

Вобщем скриптик такого толка требуется. Можно не бесплатно.

Shtogrin
На сайте с 02.11.2006
Offline
95
#1

Для общего случая проще использовать регулярные выражения и не выдумывать еще один язык шаблонов, здесь \d - любая десятичная цифра

<?php
$data=file_get_contents("1.text");
$data=preg_replace(
"|\(\d, \d\d, 'http://www.site.ua/|",
"(,,'http://www.site.ua/",
$data);
file_put_contents("2.text",$data);
?>

данные на входе

(4, 14, 'http://www.site.ua/', 'mail@site.ru',

результат - (то что отмечено звездочками удаляется)

(, , 'http://www.site.ua/', 'mail@site.ru',
www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Oneday
На сайте с 12.07.2006
Offline
93
#2

Спасибо! С этим примером все ясно. Но как быть с примером, когда необходимо удалить все, что находится между определенными символами? Может и на этот вопрос у вас имеется готовый ответ? :)

Shtogrin
На сайте с 02.11.2006
Offline
95
#3

Удалить все, что находится между символами ( и '

$data=preg_replace(

"|\([^']*'|",
"('",
$data);
Я хочу удалить все, что находится между символами ( и ', '', '.

конец условия не понял

Oneday
На сайте с 12.07.2006
Offline
93
#4

Например, может быть такая ситуация, когда в тексте будет следующая конструкция:

( text1 ', '', ' text2 ( text3 ','

при этом text3 не должен удаляться. Поэтому такое требование ( и ', '', '

Еще раз благодарю.

Shtogrin
На сайте с 02.11.2006
Offline
95
#5

в данном конкретном случае, когда ( - в начале строки, то можно так "|^\([^']*'|m",

Oneday
На сайте с 12.07.2006
Offline
93
#6

Будем пробовать :)

gerkon
На сайте с 21.10.2005
Offline
40
#7

Попробуйте программу TextCrawler. Она осуществляет поиск и замену по регекспам.

C уважением, Андрей. Пользуюсь этим хостингом уже 4 года! (http://www.replay.ru/index.php?part_id=3600) Ведущий манул Pixshock.net (http://www.pixshock.net)
S
На сайте с 13.07.2007
Offline
56
#8
Shtogrin:
в данном конкретном случае, когда ( - в начале строки, то можно так "|^\([^']*'|m",

Гммм, может всеже "'\([^\(]*'"

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