Loading ...
Sorry, an error occurred while loading the content.

Re: [PBML] Help with date format

Expand Messages
  • Tom Barron
    Here s one way... ... @data = split(/,/, $_); ($year,$month,$day) = ($data[0] =~ /(....)[ /-]?(..)[ /-]?(..)/); $dmy = $day . $month . $year; ... Tom
    Message 1 of 21 , Sep 3, 2000
    • 0 Attachment
      Here's one way...

      joach@... wrote:
      > ...
      > while (<IN>) {
      > chomp;

      @data = split(/,/, $_);
      ($year,$month,$day) = ($data[0] =~ /(....)[ /-]?(..)[ /-]?(..)/);
      $dmy = $day . $month . $year;

      > close (IN);
      > close (OUT);

      Tom
    • Maisha Walker
      Hi Tom, Could you explain how this: =~ /(....)[ /-]?(..)[ /-]?(..)/); actively splits this data: 200000830 into three pieces that can be picked up by
      Message 2 of 21 , Sep 3, 2000
      • 0 Attachment
        Hi Tom,

        Could you explain how this:
        =~ /(....)[ /-]?(..)[ /-]?(..)/);

        actively splits this data:
        200000830

        into three pieces that can be picked up by variables?

        I recognize that it's a regular expression but doesn't this just *find* the
        data? I thought you would need to use a substring to actually split it.

        Thanks!
        Maisha

        -----Original Message-----
        From: Tom Barron <tbarron@...>

        Here's one way...

        joach@... wrote:
        > ...
        > while (<IN>) {
        > chomp;

        @data = split(/,/, $_);
        ($year,$month,$day) = ($data[0] =~ /(....)[ /-]?(..)[ /-]?(..)/);
        $dmy = $day . $month . $year;

        > close (IN);
        > close (OUT);

        Tom
      • Tom Barron
        ... The secret ingredient is the parentheses. Ordinarily, the return value of =~ is 1 or 0, indicating whether the match was successful or not. F rinstance,
        Message 3 of 21 , Sep 3, 2000
        • 0 Attachment
          Maisha Walker wrote:
          > Hi Tom,
          >
          > Could you explain how this:
          > =~ /(....)[ /-]?(..)[ /-]?(..)/);
          >
          > actively splits this data:
          > 200000830
          >
          > into three pieces that can be picked up by variables?
          >
          > I recognize that it's a regular expression but doesn't this just *find* the
          > data? I thought you would need to use a substring to actually split it.
          >
          > Thanks!

          The secret ingredient is the parentheses. Ordinarily, the return value
          of =~ is 1 or 0, indicating whether the match was successful or not.
          F'rinstance,


          DB<1> p "abcdef" =~ /./
          1

          However, if the regexp contains parentheses, the return value is a list
          of the matched parenthesized subexpressions:

          DB<2> p "abcdef" =~ /(.)/
          a

          or

          DB<4> p join(" ", "abcdef" =~ /(.)(.)(.)/)
          a b c

          Since the expression

          "$date[0] =~ /(....)[ /-]?(..)[ /-]?(..)/"

          returns a list, we can assign that list to another list, like, say,

          ($year, $month, $day)

          hth...
          Tom
        • joach@direct.ca
          OK.... ran it through the debugger and it says there are errors in line #14 not just one but several..... What I am trying to do is reverse the date order in
          Message 4 of 21 , Sep 3, 2000
          • 0 Attachment
            OK.... ran it through the debugger and it says there are errors in line #14
            not just one but several.....
            What I am trying to do is reverse the date order in the first field in the
            file presently the data begins each line with 20000801 through to 20000903
            and I would like the field to read in this order 03092000...... it would
            be nice if we could break down the string and then write to file....


            #!/usr/bin/perl -w
            use strict;

            my $infile = shift;
            my $outfile = shift;

            open (IN, $infile) || die "can't open $infile: $!";
            open (OUT, ">$outfile")|| die "can't open $outfile: $!";

            while (<IN>) {
            chomp;
            my @data = split(/,/, $_);
            ($year,$month,$day) = (@data[0] =~ /(....)[ /-]?(..)[ /-]?(..)/);
            $dmy = $day . $month . $year;
            close (IN);
            close (OUT);

            __END__


            John
          • Tom Barron
            ... You re missing a closing brace. I ve marked it below. ... You need a } here.
            Message 5 of 21 , Sep 3, 2000
            • 0 Attachment
              joach@... wrote:
              > OK.... ran it through the debugger and it says there are errors in line #14
              > not just one but several.....

              You're missing a closing brace. I've marked it below.

              > What I am trying to do is reverse the date order in the first field in the
              > file presently the data begins each line with 20000801 through to 20000903
              > and I would like the field to read in this order 03092000...... it would
              > be nice if we could break down the string and then write to file....
              >
              > #!/usr/bin/perl -w
              > use strict;
              >
              > my $infile = shift;
              > my $outfile = shift;
              >
              > open (IN, $infile) || die "can't open $infile: $!";
              > open (OUT, ">$outfile")|| die "can't open $outfile: $!";
              >
              > while (<IN>) {
              > chomp;
              > my @data = split(/,/, $_);
              > ($year,$month,$day) = (@data[0] =~ /(....)[ /-]?(..)[ /-]?(..)/);
              > $dmy = $day . $month . $year;

              You need a "}" here.

              > close (IN);
              > close (OUT);
            • Andrew Johnson
              ! OK.... ran it through the debugger and it says there are errors in line #14 ! not just one but several..... You are missing the closing brace on your while
              Message 6 of 21 , Sep 3, 2000
              • 0 Attachment
                ! OK.... ran it through the debugger and it says there are errors in line #14
                ! not just one but several.....

                You are missing the closing brace on your while loop, and you are
                introducing new variables without using my() (which you should be
                doing since you are using 'strict' ... which is a good thing). You
                are also using '/' in the character class and as the regex delimiter.

                Here's a slightly different version of Tom's that doesn't require
                the extra variables -- it will also simply leave the date as it is
                if it doesn't match the regex (we are using s<><> rather than s///):

                while (<IN>) {
                chomp;
                my @data = split /,/;
                $data[0] =~ s<^(\d{4})[ /-]?(\d\d)[ /-]?(\d\d)$><$3$2$1>;
                print OUT join(',',@data),"\n";
                }


                Is that what you intended?

                regards,
                andrew

                --
                Andrew L. Johnson http://members.home.net/perl-epwp/
                It may be that your sole purpose in life is simply to
                serve as a warning to others.
              • joach@direct.ca
                ... YES........!!! This copy of the script come through without errors........ and does the job very nicely. This sort of format does not appear in the texts
                Message 7 of 21 , Sep 3, 2000
                • 0 Attachment
                  >
                  >
                  > while (<IN>) {
                  > chomp;
                  > my @data = split /,/;
                  > $data[0] =~ s<^(\d{4})[ /-]?(\d\d)[ /-]?(\d\d)$><$3$2$1>;
                  > print OUT join(',',@data),"\n";
                  > }
                  >
                  > Is that what you intended?

                  YES........!!!

                  This copy of the script come through without errors........ and does the job very
                  nicely.
                  This sort of format does not appear in the texts I've read....or ....maybe just
                  like now I$data[0] =~ s<^(\d{4})[ /-]?(\d\d)[ /-]?(\d\d)$><$3$2$1>; still don't
                  understand it...... would you have the time to document what is happening in line

                  $data[0] =~ s<^(\d{4})[ /-]?(\d\d)[ /-]?(\d\d)$><$3$2$1>; I would like to
                  apply what I'm learning here to other date formats like 2000-09-03 or
                  2000/09/03........

                  Thank you for taking the time to post .....much appreciate it

                  John
                • Greg Webster
                  Personally... To convert 20000803 (and be able to do cool things with the values individually), I d do something like the following: $wholedate = 20000803 ;
                  Message 8 of 21 , Sep 3, 2000
                  • 0 Attachment
                    Personally...

                    To convert 20000803 (and be able to do cool things with the values
                    individually), I'd do something like the following:

                    $wholedate = '20000803';
                    @alldigits = split(//, $wholedate);
                    $year = join('', @alldigits[0..3]);
                    $month = join('', @alldigits[4..5]);
                    $day = join('', @alldigits[6..7]);

                    print "Year: $year : Month: $month : Day: $day\n";

                    Then you can easily deal with all of the dates in bits. There's really no
                    reason to complicate matters here.

                    BTW, I'm sure is Awk type formats and $1, $2, $3 etc...this could be simplified
                    further.

                    Greg

                    --
                    < >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >
                    | | | GREG WEBSTER - greg@... | | | |
                    <_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>
                  • Andrew Johnson
                    ! the time to document what is happening in line ! ! $data[0] =~ s ; Firstly, you do not have to use / as the
                    Message 9 of 21 , Sep 3, 2000
                    • 0 Attachment
                      ! the time to document what is happening in line
                      !
                      ! $data[0] =~ s<^(\d{4})[ /-]?(\d\d)[ /-]?(\d\d)$><$3$2$1>;

                      Firstly, you do not have to use / as the delimiters for m// and s///,
                      you are free to use other single characters -- common choices are:
                      m#pattern# and m|pattern| (same for s### and s|||) -- also, you can
                      use paired delimiters like: m{pattern} and m<pattern> (or s{}{}, and
                      s<><>). Using alternate delimiters makes things easier when your
                      pattern contains / characters.

                      Here is the regex with comments:

                      $data[0] =~ s<
                      ^ # match start of string
                      ( # open $1 capture parens
                      \d{4} # grab 4 digits into $1
                      ) # close $1
                      [ /-]? # optionally match a space, slash, or dash
                      ( # open $2 capture
                      \d\d # grab 2 digits into $2
                      ) # close $2
                      [ /-]? # optionally match a space, slash, or dash
                      ( # open $3 capture
                      \d\d # grab 2 digits into $3
                      ) # close $3
                      $ # match end of string
                      >
                      <$3$2$1>x;# replace with "$3$2$1", the 'x' modifier
                      # allows these comments


                      ! I would like to apply what I'm learning here to other date formats
                      ! like 2000-09-03 or 2000/09/03........

                      As you can see, the above already handles these formats by allowing
                      for an optional space, slash, or dash between the groups -- this was
                      inherent in Tom's posted reply.

                      Other resources for learning about regular expressions are:

                      perldoc perlre

                      Mark Kvale has a couple of regex tutorials available:

                      http://keck.ucsf.edu/~kvale/perlrequick.pod
                      http://keck.ucsf.edu/~kvale/perlretut.pod

                      The first is an introductory tutorial, the latter covers some more
                      advanced features -- I also have one similar to Kvale's advanced one
                      that I mostly finished before hearing about his (if I knew he was
                      doing it I could have spent my time doing other things :-). You can
                      find it at:

                      http://members.home.net/andrew-johnson/perl/regextut.pod

                      Lastly, I might as well mention that one of the two sample chapters
                      for my book is on regular expressions and might be of use (it is a
                      PDF file, free) -- grab chapter 10 at:

                      http://www.manning.com/Johnson/Chapters.html

                      Hope it helps.

                      regards,
                      andrew

                      --
                      Andrew L. Johnson http://members.home.net/perl-epwp/
                      Doing linear scans over an associative array is like
                      trying to club someone to death with a loaded Uzi.
                      -- Larry Wall
                    • joach@direct.ca
                      Thank you for the detailed explanation ...... and the reading material.... There is more to the perl than one thinks....I like the way i covers the space,
                      Message 10 of 21 , Sep 3, 2000
                      • 0 Attachment
                        Thank you for the detailed explanation ...... and the reading material....
                        There is more to the perl than one thinks....I like the way i covers the
                        space, slash, or dash .....all options are covered.

                        John


                        > $data[0] =~ s<
                        > ^ # match start of string
                        > ( # open $1 capture parens
                        > \d{4} # grab 4 digits into $1
                        > ) # close $1
                        > [ /-]? # optionally match a space, slash, or dash
                        > ( # open $2 capture
                        > \d\d # grab 2 digits into $2
                        > ) # close $2
                        > [ /-]? # optionally match a space, slash, or dash
                        > ( # open $3 capture
                        > \d\d # grab 2 digits into $3
                        > ) # close $3
                        > $ # match end of string
                        > >
                        > <$3$2$1>x;# replace with "$3$2$1", the 'x' modifier
                        > # allows these comments
                        >
                        > ! I would like to apply what I'm learning here to other date formats
                        > ! like 2000-09-03 or 2000/09/03........
                        >
                      • Maisha Walker
                        Andrew - that was a beautiful and suprisingly simple explanation of what was going on in that regex. Thank you!! maisha ... From: Andrew Johnson
                        Message 11 of 21 , Sep 4, 2000
                        • 0 Attachment
                          Andrew - that was a beautiful and suprisingly simple explanation of what was
                          going on in that regex.

                          Thank you!!

                          maisha
                          -----Original Message-----
                          From: Andrew Johnson <andrew-johnson@...>


                          ! the time to document what is happening in line
                          !
                          ! $data[0] =~ s<^(\d{4})[ /-]?(\d\d)[ /-]?(\d\d)$><$3$2$1>;

                          Firstly, you do not have to use / as the delimiters for m// and s///,
                          you are free to use other single characters -- common choices are:
                          m#pattern# and m|pattern| (same for s### and s|||) -- also, you can
                          use paired delimiters like: m{pattern} and m<pattern> (or s{}{}, and
                          s<><>). Using alternate delimiters makes things easier when your
                          pattern contains / characters.

                          Here is the regex with comments:

                          $data[0] =~ s<
                          ^ # match start of string
                          ( # open $1 capture parens
                          \d{4} # grab 4 digits into $1
                          ) # close $1
                          [ /-]? # optionally match a space, slash, or dash
                          ( # open $2 capture
                          \d\d # grab 2 digits into $2
                          ) # close $2
                          [ /-]? # optionally match a space, slash, or dash
                          ( # open $3 capture
                          \d\d # grab 2 digits into $3
                          ) # close $3
                          $ # match end of string
                          >
                          <$3$2$1>x;# replace with "$3$2$1", the 'x' modifier
                          # allows these comments


                          ! I would like to apply what I'm learning here to other date formats
                          ! like 2000-09-03 or 2000/09/03........

                          As you can see, the above already handles these formats by allowing
                          for an optional space, slash, or dash between the groups -- this was
                          inherent in Tom's posted reply.

                          Other resources for learning about regular expressions are:

                          perldoc perlre

                          Mark Kvale has a couple of regex tutorials available:

                          http://keck.ucsf.edu/~kvale/perlrequick.pod
                          http://keck.ucsf.edu/~kvale/perlretut.pod

                          The first is an introductory tutorial, the latter covers some more
                          advanced features -- I also have one similar to Kvale's advanced one
                          that I mostly finished before hearing about his (if I knew he was
                          doing it I could have spent my time doing other things :-). You can
                          find it at:

                          http://members.home.net/andrew-johnson/perl/regextut.pod

                          Lastly, I might as well mention that one of the two sample chapters
                          for my book is on regular expressions and might be of use (it is a
                          PDF file, free) -- grab chapter 10 at:

                          http://www.manning.com/Johnson/Chapters.html

                          Hope it helps.

                          regards,
                          andrew

                          --
                          Andrew L. Johnson http://members.home.net/perl-epwp/
                          Doing linear scans over an associative array is like
                          trying to club someone to death with a loaded Uzi.
                          -- Larry Wall
                        • Maisha Walker
                          just curious everyone, but why use d d instead of d{2} - even just for consistency sake? is there a particular reason for using d d instead? maisha
                          Message 12 of 21 , Sep 4, 2000
                          • 0 Attachment
                            just curious everyone, but why use \d\d instead of \d{2} - even just for
                            consistency sake?
                            is there a particular reason for using \d\d instead?

                            maisha

                            $data[0] =~ s<^(\d{4})[ /-]?(\d\d)[ /-]?(\d\d)$><$3$2$1>;
                          • Maisha Walker
                            hey, isn t the problem with this though, that you cannot as simply account for the addition of spaces, dashes or slashes to the date? that was one of the
                            Message 13 of 21 , Sep 4, 2000
                            • 0 Attachment
                              hey, isn't the problem with this though, that you cannot as simply account
                              for the addition of spaces, dashes or slashes to the date? that was one of
                              the prerequisites of the person who had the question.

                              for example, what if your date looked like this:
                              2000-08-23

                              or if it sometimes looked like the above and sometimes looked like this:
                              20000823

                              the program below would not work anymore.

                              i'm a beginner, so let me know if i've missed something!

                              maisha
                              -----Original Message-----
                              From: Greg Webster <greg@...>
                              To: perl-beginner@egroups.com <perl-beginner@egroups.com>
                              Date: Sunday, September 03, 2000 10:26 PM
                              Subject: Re: [PBML] Help with date format




                              Personally...

                              To convert 20000803 (and be able to do cool things with the values
                              individually), I'd do something like the following:

                              $wholedate = '20000803';
                              @alldigits = split(//, $wholedate);
                              $year = join('', @alldigits[0..3]);
                              $month = join('', @alldigits[4..5]);
                              $day = join('', @alldigits[6..7]);

                              print "Year: $year : Month: $month : Day: $day\n";

                              Then you can easily deal with all of the dates in bits. There's really no
                              reason to complicate matters here.

                              BTW, I'm sure is Awk type formats and $1, $2, $3 etc...this could be
                              simplified
                              further.

                              Greg

                              --
                              < >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >
                              | | | GREG WEBSTER - greg@... | | | |
                              <_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>
                            • Oliver Manickum
                              Hey Maisha, I would try to compensate for both.. ie. if a user sometimes used 2000-05-03 or sometimes used 20000503 then i would first do this $date =
                              Message 14 of 21 , Sep 4, 2000
                              • 0 Attachment
                                RE: [PBML] Help with date format

                                Hey Maisha,

                                        I would try to compensate for both.. ie.        if a user sometimes used 2000-05-03 or sometimes used 20000503 then i would first do this

                                        $date = '2000/05/03';
                                        $date =~ s/\-\/\\//; # Accomodate for a - or a \ or a / or whateva else the user might separate the date by.....

                                       
                                        then u can play with it in the form of 20000505

                                - Olly
                                Oliver Manickum
                                ____________________________
                                ePages Internet & Multimedia
                                http://www.epages.net/
                                Tel : +27 (0)31 2651281

                                -----Original Message-----
                                From: Maisha Walker [mailto:maisha@...]
                                Sent: Monday, September 04, 2000 4:00 PM
                                To: perl-beginner@egroups.com
                                Subject: Re: [PBML] Help with date format


                                -------------------------- eGroups Sponsor -------------------------~-~>
                                The Five Secrets Of A Successful Product Launch
                                FREE right now at:
                                http://click.egroups.com/1/8592/15/_/12898/_/968076180/
                                ---------------------------------------------------------------------_->

                                hey, isn't the problem with this though, that you cannot as simply account
                                for the addition of spaces, dashes or slashes to the date?  that was one of
                                the prerequisites of the person who had the question.

                                for example, what if your date looked like this:
                                2000-08-23

                                or if it sometimes looked like the above and sometimes looked like this:
                                20000823

                                the program below would not work anymore.

                                i'm a beginner, so let me know if i've missed something!

                                maisha

                              • Maisha Walker
                                oh yeah - that *is* simple! Thank you! maisha ... From: Oliver Manickum To: perl-beginner@egroups.com Date:
                                Message 15 of 21 , Sep 4, 2000
                                • 0 Attachment
                                  RE: [PBML] Help with date format
                                  oh yeah - that *is* simple!
                                   
                                  Thank you!
                                  maisha
                                  -----Original Message-----
                                  From: Oliver Manickum <oliver@...>
                                  To: perl-beginner@egroups.com <perl-beginner@egroups.com>
                                  Date: Monday, September 04, 2000 10:17 AM
                                  Subject: RE: [PBML] Help with date format


                                  Hey Maisha,

                                          I would try to compensate for both.. ie.        if a user sometimes used 2000-05-03 or sometimes used 20000503 then i would first do this

                                          $date = '2000/05/03';
                                          $date =~ s/\-\/\\//; # Accomodate for a - or a \ or a / or whateva else the user might separate the date by.....

                                         
                                          then u can play with it in the form of 20000505

                                  - Olly
                                  Oliver Manickum
                                  ____________________________
                                  ePages Internet & Multimedia
                                  http://www.epages.net/
                                  Tel : +27 (0)31 2651281

                                  -----Original Message-----
                                  From: Maisha Walker [mailto:maisha@...]
                                  Sent: Monday, September 04, 2000 4:00 PM
                                  To: perl-beginner@egroups.com
                                  Subject: Re: [PBML] Help with date format


                                  -------------------------- eGroups Sponsor -------------------------~-~>
                                  The Five Secrets Of A Successful Product Launch
                                  FREE right now at:
                                  http://click.egroups.com/1/8592/15/_/12898/_/968076180/
                                  ---------------------------------------------------------------------_->

                                  hey, isn't the problem with this though, that you cannot as simply account
                                  for the addition of spaces, dashes or slashes to the date?  that was one of
                                  the prerequisites of the person who had the question.

                                  for example, what if your date looked like this:
                                  2000-08-23

                                  or if it sometimes looked like the above and sometimes looked like this:
                                  20000823

                                  the program below would not work anymore.

                                  i'm a beginner, so let me know if i've missed something!

                                  maisha

                                • Andrew Johnson
                                  ! just curious everyone, but why use d d instead of d{2} - even just ! for consistency sake? is there a particular reason for using d d ! instead? To be
                                  Message 16 of 21 , Sep 4, 2000
                                  • 0 Attachment
                                    ! just curious everyone, but why use \d\d instead of \d{2} - even just
                                    ! for consistency sake? is there a particular reason for using \d\d
                                    ! instead?

                                    To be honest, here is why I did it that way:

                                    \d{4} is shorter than \d\d\d\d
                                    \d\d is shorter than \d{2}

                                    :-)

                                    andrew

                                    --
                                    Andrew L. Johnson http://members.home.net/andrew-johnson/
                                    The generation of random numbers is too
                                    important to be left to chance.
                                  • Greg Webster
                                    Sorry, you re right...but this is easily accomplished with one line. $wholedate = 20000803 ; $wholedate =~ s/[ /- .//g; #removes / - and . Add as
                                    Message 17 of 21 , Sep 4, 2000
                                    • 0 Attachment
                                      Sorry, you're right...but this is easily accomplished with one line.

                                      $wholedate = '20000803';
                                      $wholedate =~ s/[\/-\\\.//g; #removes / - \ and . Add as needed
                                      @alldigits = split(//, $wholedate);
                                      $year = join('', @alldigits[0..3]);
                                      $month = join('', @alldigits[4..5]);
                                      $day = join('', @alldigits[6..7]);

                                      print "Year: $year : Month: $month : Day: $day\n";

                                      Greg

                                      On Mon, 04 Sep 2000, you wrote:
                                      >
                                      > hey, isn't the problem with this though, that you cannot as simply account
                                      > for the addition of spaces, dashes or slashes to the date? that was one of
                                      > the prerequisites of the person who had the question.
                                      >
                                      > for example, what if your date looked like this:
                                      > 2000-08-23
                                      >
                                      > or if it sometimes looked like the above and sometimes looked like this:
                                      > 20000823
                                      >
                                      > the program below would not work anymore.
                                      >
                                      > i'm a beginner, so let me know if i've missed something!
                                      >
                                      > maisha
                                      > -----Original Message-----
                                      > From: Greg Webster <greg@...>
                                      > To: perl-beginner@egroups.com <perl-beginner@egroups.com>
                                      > Date: Sunday, September 03, 2000 10:26 PM
                                      > Subject: Re: [PBML] Help with date format
                                      >
                                      >
                                      >
                                      >
                                      > Personally...
                                      >
                                      > To convert 20000803 (and be able to do cool things with the values
                                      > individually), I'd do something like the following:
                                      >
                                      > $wholedate = '20000803';
                                      > @alldigits = split(//, $wholedate);
                                      > $year = join('', @alldigits[0..3]);
                                      > $month = join('', @alldigits[4..5]);
                                      > $day = join('', @alldigits[6..7]);
                                      >
                                      > print "Year: $year : Month: $month : Day: $day\n";
                                      >
                                      > Then you can easily deal with all of the dates in bits. There's really no
                                      > reason to complicate matters here.
                                      >
                                      > BTW, I'm sure is Awk type formats and $1, $2, $3 etc...this could be
                                      > simplified
                                      > further.
                                      >
                                      > Greg
                                      >
                                      > --
                                      > < >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >
                                      > | | | GREG WEBSTER - greg@... | | | |
                                      > <_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>
                                      --
                                      < >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >
                                      | | | GREG WEBSTER - greg@... | | | |
                                      <_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>
                                    • Andrew Johnson
                                      ! Sorry, you re right...but this is easily accomplished with one line. ! ! $wholedate = 20000803 ; ! $wholedate =~ s/[ /- .//g; #removes / - and . Add
                                      Message 18 of 21 , Sep 4, 2000
                                      • 0 Attachment
                                        ! Sorry, you're right...but this is easily accomplished with one line.
                                        !
                                        ! $wholedate = '20000803';
                                        ! $wholedate =~ s/[\/-\\\.//g; #removes / - \ and . Add as needed

                                        Ouch! Greg, besides forgetting the closing ] on the character class,
                                        you do realize that your regex will remove a whole lot more than you
                                        think it does (removing all upper case letters and all digits, and
                                        several punctuation characters -- and it won't remove the '-'
                                        character).

                                        I think you meant: [\/\\\.-] , placement of the '-' is crucial inside
                                        of character classes.

                                        regards,
                                        andrew

                                        --
                                        Andrew L. Johnson http://members.home.net/andrew-johnson/
                                        I drink to make other people interesting.
                                        -- George Jean Nathan
                                      • Greg Webster
                                        Heh, I really should test what I write. Forgive me, it s been a hell of a week. You are absolutely right about the placement and order. Greg ... -- -
                                        Message 19 of 21 , Sep 4, 2000
                                        • 0 Attachment
                                          Heh, I really should test what I write. Forgive me, it's been a hell of a week.
                                          You are absolutely right about the placement and order.

                                          Greg

                                          On Mon, 04 Sep 2000, you wrote:
                                          > Ouch! Greg, besides forgetting the closing ] on the character class,
                                          > you do realize that your regex will remove a whole lot more than you
                                          > think it does (removing all upper case letters and all digits, and
                                          > several punctuation characters -- and it won't remove the '-'
                                          > character).
                                          >
                                          > I think you meant: [\/\\\.-] , placement of the '-' is crucial inside
                                          > of character classes.
                                          >
                                          > regards,
                                          > andrew
                                          >
                                          > --
                                          > Andrew L. Johnson http://members.home.net/andrew-johnson/
                                          > I drink to make other people interesting.
                                          > -- George Jean Nathan
                                          --
                                          < >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >-< >< >
                                          | | | GREG WEBSTER - greg@... | | | |
                                          <_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>-<_><_>
                                        • Maisha Walker
                                          ha ha ha - that s great! maisha ... From: Andrew Johnson ! just curious everyone, but why use d d instead of d{2} - even just ! for
                                          Message 20 of 21 , Sep 4, 2000
                                          • 0 Attachment
                                            ha ha ha - that's great!

                                            maisha
                                            -----Original Message-----
                                            From: Andrew Johnson <andrew-johnson@...>

                                            ! just curious everyone, but why use \d\d instead of \d{2} - even just
                                            ! for consistency sake? is there a particular reason for using \d\d
                                            ! instead?

                                            To be honest, here is why I did it that way:

                                            \d{4} is shorter than \d\d\d\d
                                            \d\d is shorter than \d{2}

                                            :-)

                                            andrew
                                          • Smith, Sheldon
                                            That s right. Allowing for optional delimiters was exactly what Andrew Johnson s regex did (with the pattern [ /-]? ). (See earlier post.) Simple substring
                                            Message 21 of 21 , Sep 6, 2000
                                            • 0 Attachment
                                              That's right. Allowing for optional delimiters was exactly what Andrew
                                              Johnson's regex did (with the pattern "[ /-]?"). (See earlier post.) Simple
                                              substring extractions just can't get the job done.

                                              Shel Smith

                                              > -----Original Message-----
                                              > From: Maisha Walker [mailto:maisha@...]
                                              > Sent: Monday, September 04, 2000 9:00 AM
                                              > To: perl-beginner@egroups.com
                                              > Subject: Re: [PBML] Help with date format
                                              >
                                              > hey, isn't the problem with this though, that you cannot as
                                              > simply account
                                              > for the addition of spaces, dashes or slashes to the date?
                                              > that was one of
                                              > the prerequisites of the person who had the question.
                                              >
                                              > for example, what if your date looked like this:
                                              > 2000-08-23
                                              >
                                              > or if it sometimes looked like the above and sometimes looked
                                              > like this:
                                              > 20000823
                                            Your message has been successfully submitted and would be delivered to recipients shortly.