PDA

Просмотр полной версии : Требуется помощь (Регулярные выражения)


SSB1981
11.02.2008, 18:37
Здравствуйте!
Т.К в регулярных выражения я не очень, то прошу вашей помощи.
Есть вот такая строка:
1042355456 1042355711 Ru Вологда Вологодская область Северо-Западный
цифры - дапазон Ip
потом Id страны
потом город (Вологда)
далее область
и последнее регион

Мне необходимо заключить все эти данные в кавычки и разделить запятой.
Кто поможет/напишет?
Спасибо!
P.S. таких сторок просто 66 000

bul.666
11.02.2008, 18:44
Приведи штук пять строк для проверки

Kaimi
11.02.2008, 18:51
А нафига регулярку писать?
Замени пробелы на ","
В начало строки " и замени \n на "

bul.666
11.02.2008, 18:55
Вологодская область
Тут пробел =\

Isis
11.02.2008, 18:56
не так не пойдёт.
Сам и делай

SSB1981
11.02.2008, 19:08
Isis это не туда у меня интернет медленный поэтому ответ поздно приходит
строки
1348299520 1348300543 RU Москва Москва Центральный
1348317184 1348321279 RU Санкт-Петербург Санкт-Петербург Северо-Западный
1357710176 1357710207 RU Мурманск Мурманская область Северо-Западный
1357710280 1357710287 RU Москва Москва Центральный
1357710288 1357710295 RU Подольск Московская область Центральный

cylaaaan
11.02.2008, 19:35
может быть нужно из файла каждую стоку обратить в массив
например сделать ей вид:

$a[0] = "1348299520 1348300543 RU Москва Москва Центральный";
$a[1] = "...";
$a[2] = "...";

и так далее....

а потом юзать к каждой строке preg_match_all, а потом выводить на экран, через for естевственно

demonoid
11.02.2008, 20:13
Здравствуйте!
Т.К в регулярных выражения я не очень, то прошу вашей помощи.


#!perl -w
use strict;
my $f = shift||exit print "\x09usage $0 <file>";
open my $FILE,$f or die $!;
foreach my $text (<$FILE>)
{
printcyr("'$1','$2','$3','$4','$5','$6'\n") if $text=~/(\d+) (\d+) ([A-Z]{2}) (.+?) (.+) (.+)/;
}
close $FILE;
sub printcyr
{

my $text = shift;
$text =~ y/А-яЁё/\x80-\xaf\xe0-\xf1/;
print $text;
}
C:\>p.pl id.txt
'1348299520','1348300543','RU','Москва','М сква','Центральный'
'1348317184','1348321279','RU','Санкт-Петербург','Санкт-Петербург','Северо-Западный'
'1357710176','1357710207','RU','Мурманск', 'Мурманская область','Северо-Западный'
'1357710280','1357710287','RU','Москва','М сква','Центральный'
'1357710288','1357710295','RU','Подольск', 'Московская область','Центральный'

Joker-jar
11.02.2008, 20:23
Проблема только в правильном отделении города, области и региона. Область может состоять из нескольких слов, если города и регионы тоже, то придется сделать справочники областей и регионов, думаю их не очень много

t0tal
12.02.2008, 03:14
Пользуйся экселем как разделитель выбери пробел и подставляй куда надо столбики с запятыми или кавычками, что там надо то и вставляй.

SSB1981
12.02.2008, 22:32
Спасибо.

SSB1981
13.02.2008, 13:13
Пользуйся экселем как разделитель выбери пробел и подставляй куда надо столбики с запятыми или кавычками, что там надо то и вставляй.

Спасибо!
Держи +