bharatbsharma has asked for the wisdom of the Perl Monks concerning the following question:

Hello monks I am trying regular expression to match a string which is given by
17-08-2010 10:57:22 141-9997 Critical "OEM:imst2k19:4"
i use reg exp like this
if ($var =~ /^((0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-(20)?\d\d\s\w +)/) { }

I am matching string starting with date in DD-MM-YYYY format and any space and a word character following that.

Now I want to put some more restriction that this string should contain something or nothing in double quote in the end. i.e string starting with date then white space then some characters then ending with double quotes where something or nothing can be withing double quotes eg. "OEM:imst2k19:4" or ""

How existing reg exp can be modified?

Replies are listed 'Best First'.
Re: Regular exp - modification
by Ratazong (Monsignor) on Aug 18, 2010 at 06:39 UTC

    Have a look at your spec. It contains various parts, and you can create regexes for each part independently. Then you just have to put them together (in the right order).

    • Now I want to put some more restriction that this string should contain something or nothing in double quote in the end
      \".*?\"$
    • then some characters then ending with double quotes
      .*?\"
    • string starting with date then white space
      you already have that part in your regex

    HTH, Rata

    P.S. be careful not to check for \" twice when combining the regexes ;-)

Re: Regular exp - modification
by JavaFan (Canon) on Aug 18, 2010 at 10:12 UTC
    Now I want to put some more restriction that this string should contain something or nothing in double quote in the end. i.e string starting with date then white space then some characters then ending with double quotes where something or nothing can be withing double quotes eg. "OEM:imst2k19:4" or ""
    Basically, what you saying is that the rest of the string should contain two double quotes, where the last one ends the string. This part is expressed as:
    /[^"]*"[^"]*"$/
Re: Regular exp - modification
by umasuresh (Hermit) on Aug 18, 2010 at 16:26 UTC
    A great book to have in your book shelf is Mastering Regular Expressions by Jeffry Friedl.