Как удалить все цифры и символы, кроме букв и переноса строки из текстового файла

12
С
На сайте с 21.12.2007
Offline
49
15692

Сабж.

Большого файла.

Подскажите пожалуйста.

Спасибо :)

Качественные ссылки с трастовых сайтов - навсегда! (http://miralinks.ru/users/registration/from:13484)
D8
На сайте с 16.06.2007
Offline
74
dm8
#1

в перле - $text =~ s/[^\w\s\n]//g;

где $text - загруженный файл.

Хотя с русской раскладкой так не пройдет, но принцип тот же :)

[Удален]
#2

Соло ну создай массив нужных символов да и делу край )))

А так регулярки юзай

http://ru2.php.net/manual/ru/function.preg-replace.php

С
На сайте с 21.12.2007
Offline
49
#3

Блин господа, я не прогер, может скрипт кто подскажет готовый? Буду очень признателен.

A5
На сайте с 06.08.2006
Offline
46
#4

Соло, Посмотрите в сторону Far Manager и плугина Search and Replace.

Search and Replace поддерживает регулярные выражения и может обрабатывать файлы в каталогах, по маске.

В Far Manager нажимаем F12 выбираем "Поиск и замена"

В поле "Искать" вводим [^\i\s]. Ставим крестик "Заменить на". Поле "Заменить на" оставляем пустым. Устанавливаем крестик использовать "Регулярные выражения".

Maxouni
На сайте с 18.11.2008
Offline
119
#5


<?php
$str = file("путь к файлу");
$str_rep = "01234567890!#%?/.,\'\"";
$str_end = " ";//кол-во пробелов = кол-во символов
$h = fopen("новый файл","a");
foreach ($str as $val)
{
$val = strtr($val,$str_rep,$str_end);
$val = str_replace(" ","",$val);
fputs($h,$val)
}
fclose($h)
?>

Самое простой вариант, можно ещё str_replace тупо заменять каждый символ

Создание, продвижение, поддержка сайтов и приложений.
T
На сайте с 24.07.2008
Offline
145
#6
Maxouni:

<?php
$str = file("путь к файлу");
$str_rep = "01234567890!#%?/.,\'\"";
$str_end = " ";//кол-во пробелов = кол-во символов
$h = fopen("новый файл","a");
foreach ($str as $val)
{
$val = strtr($val,$str_rep,$str_end);
$val = str_replace(" ","",$val);
fputs($h,$val)
}
fclose($h)
?>


Самое простой вариант, можно ещё str_replace тупо заменять каждый символ

Не правильно, написали же что файл большой, надо построчно fopen -> fgets и каждую стоку прегреплейсить, если же всё в одну строку, то побайтовое чтение fgetc :)

[Удален]
#7

Если сложно с регулярками и предложенными вариантами - может Ворд поможет (смотря какой текст). У него досточно мощные средства замены. Цифры уж точно удалит.

Или такой алгоритм:

Выделить всё - форматирование (болд, например).

Замена.

1-й проход. Заменяешь все буквы на искомый текст+убираешь форматирование.

2-й проход. Замена всех форматированных символов на "ничего".

[Удален]
#8

ну устроили тут .... смещно :)

S
На сайте с 28.10.2005
Offline
311
#9


<?
setlocale (LC_ALL, "ru_RU.CP1251");

$l = file ('text.txt');

array_walk ($l, 'clear');

echo implode ('<br>', $l);

function clear (&$string) {

$string = preg_replace ('/[^a-zа-я]/i', '', $string);

}

?>
Maxouni
На сайте с 18.11.2008
Offline
119
#10
Tempter:
надо построчно fopen -> fgets и каждую стоку прегреплейсить

Посмотри как функция file работает (насчет построчно).

12

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