Вопрос : Perl регулярно выражений



Hi,

Я пытаюсь parse поле даты с формой

dd/mm/YYYY HH: MM: SS

иногда дата имеет только одно число и когда-то HH имеет только
одно число
пример входного сигнала

7/03/2001 9:09: 18.034449599, BGC, WCOM, C3400

Я хочу посмотреть каждое поле даты если будет только число iий
конкатенируйте 0 перед им, примером если день 7, котор я кладу 07,
если час 9, то я кладу 09. Я также хочу к elimnate космос.

так для входного сигнала над пожеланным выходом


07/03/200109: 09: 18.034449599, BGC, WCOM, C3400

:

Я могу изолировать dd и извлечь космос но когда я неспособен
изолировать mm и HH

пример:

#! /usr/bin/perl

#use только;

используйте предупреждения;
мое $inputFile;
мо $inputname = «Sample1Date.txt»;
мое $outputfile;
мо $outputname = «Sample1Date_output.txt»;
мое $line;
мои @lineParts;
мое @linePartsDay;
мое @linePartsMonth;
мое "" $temp2=;

раскройте (inputFile, «$inputname»);
#open ($inputFile, «<>раскрывают ($outputfile, «>$outputname») || умрите «не смогите раскрыть выходной файл»;
мо $temp = "";

пока ($line = )

{

       @lineParts = разделили «\,», $line;
       мо $date = $lineParts [0];
       @linePartsDay = разделите «\/», $date;
       мо $day = $linePartsDay [0];
       день печати «: $day \ n»;

       #@linePartsMonth = разделило «\ ^ (\ d {2}/\ d {2}/)», $date;
       @linePartsMonth = разделило «\ ^ (/)», $date;

       мо $month = $linePartsMonth [0];
       месяц печати «: $month \ n»;


       #$temp2 = $date;
       s/=~ #$temp2 (\ s) +;

       #$date = $temp2;   # извлекайте космосы в середине даты
       дата печати «: $date \ n»;
       мо $number1 = $lineParts [1];
       мо $donor = $lineParts [2];
       мо $recipient = $lineParts [3];
       мо $routing = $lineParts [4];
       $temp = $date. «,». $number1. «,». $donor. «,». $recipient. «,». $routing;
       печать $outputfile «$temp»;


}

#close $inputFile;

близкое $outputfile;

Я получаю:

день: 7 (ОДОБРЕННЫЙ) я могу после этого посмотреть длину дня если только 1 число конкатенирует 0 перед им.
месяц: дата: 7/03/20019: 09: 18
дата: 7/03/20019: 09: 18

Я не умею как изолировать mm, как только я получаю месяц, котор я хотел был бы изолировать
yyyy HH MM и SS и проверить каждое поле (как только я имею изолят iего
сумейте как к concate).

Судимые различные регулярно выражения iий для изолировать месяц но неспособно…

       #@linePartsMonth = разделило «\ ^ (\ d {2}/\ d {2}/)», $date;
       @linePartsMonth = разделило «\ ^ (/)», $date;

       мо $month = $linePartsMonth [0];
       месяц печати «: $month \ n»;

Вы умеете как к изоляции для MM, YYYY HH MM SS


Ответ : Perl регулярно выражений

$_= «7/03/2001 9:09: 18.034449599, BGC, WCOM, C3400»;
s/ ? \ b) (\ d \ b/0$1/g;
печать;
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us