Regular expression to match month number 1,...,12 (including e.g. 04,05) - Help

This is a discussion on Regular expression to match month number 1,...,12 (including e.g. 04,05) - Help ; How does a regular expression look like which should match exactly one of the twelve possible month numbers 1,...,12 Prepending a zero to one-digit month numbers should be allowed e.g. 07 Matt...

+ Reply to Thread
Results 1 to 6 of 6

Thread: Regular expression to match month number 1,...,12 (including e.g. 04,05)

  1. Regular expression to match month number 1,...,12 (including e.g. 04,05)

    How does a regular expression look like which should match exactly one of the
    twelve possible month numbers
    1,...,12
    Prepending a zero to one-digit month numbers should be allowed e.g. 07

    Matt


  2. Re: Regular expression to match month number 1,...,12 (including e.g. 04,05)

    Matt Benson wrote:

    First, DO NOT CROSS-POST as you are doing. Choose at most two newsgroups.

    > How does a regular expression look like which should match exactly one of
    > the twelve possible month numbers
    > 1,...,12
    > Prepending a zero to one-digit month numbers should be allowed e.g. 07


    Simple, but you need to say which language/utility/command you plan to
    process the expression. The below won't find the single-digit versions, but
    it will work for the double-digit forms:

    (01|02|03|04|05|06|07|08|09|10|11|12)

    Unambiguously and uniquely finding all the delimited cases is slightly more
    complex.

    --
    Paul Lutus
    http://www.arachnoid.com


  3. Re: Regular expression to match month number 1,...,12 (including e.g. 04,05)

    mbens@hotmail.com (Matt Benson) wrote in message news:...
    > How does a regular expression look like which should match exactly one of the
    > twelve possible month numbers
    > 1,...,12
    > Prepending a zero to one-digit month numbers should be allowed e.g. 07
    >
    > Matt


    Maybe what you want is:
    /^(0?[1-9]|1[0-2])$/


    Regards

    --
    -Andrés Monroy-Hernández

  4. Re: Regular expression to match month number 1,...,12 (including e.g. 04,05)

    Paul Lutus wrote:
    > Matt Benson wrote:
    >
    > First, DO NOT CROSS-POST as you are doing. Choose at most two
    > newsgroups.


    Oh come off it, he posted to groups that can be considered relevant to
    this topic. RegEx, in the general sense, can be difficult to fully fit
    into just one category. It's a part of sed, egrep, Perl, among many
    other languages and tools. I'm sorry, but this is such a case when the
    crossposting seems merited.

    And come to think of it, that's the whole point of cross posting, to be
    able to reach as many people for a given relevant topic without posting
    multiple copies for each group (multi-posting), is it not?

    >> How does a regular expression look like which should match exactly
    >> one of the twelve possible month numbers
    >> 1,...,12
    >> Prepending a zero to one-digit month numbers should be allowed e.g.
    >> 07

    >
    > Simple, but you need to say which language/utility/command you plan to
    > process the expression. The below won't find the single-digit
    > versions, but it will work for the double-digit forms:
    >
    > (01|02|03|04|05|06|07|08|09|10|11|12)


    Why not (1[0-2]|0?[1-9]) ? Takes care of leading 0's too :-) Should
    work with most tools, like Perl, sed, egrep, and the likes.



  5. Re: Regular expression to match month number 1,...,12 (including e.g. 04,05)

    Andres Monroy-Hernandez wrote:
    > mbens@hotmail.com (Matt Benson) wrote in message
    > news:...
    >> How does a regular expression look like which should match exactly
    >> one of the twelve possible month numbers
    >> 1,...,12
    >> Prepending a zero to one-digit month numbers should be allowed e.g.
    >> 07
    >>
    >> Matt

    >
    > Maybe what you want is:
    > /^(0?[1-9]|1[0-2])$/


    Bah, shame your post didn't come down the feed before I posted. Yours is
    basically the same, but I admit a bit better, but only if if the number
    is the only thing on the line.

    Perhaps something like:

    /[^0-9]*(0?[1-9]|1[0-2])[^0-9]*/

    Of if your RegEx engine supports \D (non-numeric) you can write it as:

    /\D*(0?[1-9]|1[0-2])\D*/

    That way it can be caught not just when it's in a line by itself :-)



  6. Re: Regular expression to match month number 1,...,12 (including e.g. 04,05)

    187 wrote:

    > Paul Lutus wrote:
    >> Matt Benson wrote:
    >>
    >> First, DO NOT CROSS-POST as you are doing. Choose at most two
    >> newsgroups.

    >
    > Oh come off it, he posted to groups that can be considered relevant to
    > this topic.


    Read any beginner's guide to Usenet, then come back and retract.

    http://www.cs.tut.fi/~jkorpela/usenet/xpost.html

    Quote:

    "It is considered highly inappropriate to broadcast your message to a wide
    selection of newsgroups merely to have more people read it. Note also that
    many people automatically ignore articles posted to more than two or three
    groups."

    http://www.usenet.com/articles/cross_posting.htm

    Quote:

    "You should cross-post only when it is really needed, and usually not to
    more than three groups."

    And so forth, through hundreds of such authoritative guides.

    > RegEx, in the general sense, can be difficult to fully fit
    > into just one category. It's a part of sed, egrep, Perl, among many
    > other languages and tools. I'm sorry, but this is such a case when the
    > crossposting seems merited.


    No, first because such a wide cross-post is always unacceptable, and because
    the OP must have some preliminary target environment in mind. That
    environment has some specific traits.

    >
    > And come to think of it, that's the whole point of cross posting, to be
    > able to reach as many people for a given relevant topic without posting
    > multiple copies for each group (multi-posting), is it not?


    Cross-posting to more than a few groups is unacceptable. See above.

    >
    >>> How does a regular expression look like which should match exactly
    >>> one of the twelve possible month numbers
    >>> 1,...,12
    >>> Prepending a zero to one-digit month numbers should be allowed e.g.
    >>> 07

    >>
    >> Simple, but you need to say which language/utility/command you plan to
    >> process the expression. The below won't find the single-digit
    >> versions, but it will work for the double-digit forms:
    >>
    >> (01|02|03|04|05|06|07|08|09|10|11|12)

    >
    > Why not (1[0-2]|0?[1-9]) ? Takes care of leading 0's too :-) Should
    > work with most tools, like Perl, sed, egrep, and the likes.


    Yes, my example is pretty bad, but since the OP did not say which engine he
    is going to use, I didn't try to tune it for a specific environment. There
    really are a lot of types of regex, of widely varying vintages. He needed
    to say which regex engine he is planning to use, instead of crossposting.

    --
    Paul Lutus
    http://www.arachnoid.com


+ Reply to Thread