Regular expression to find the date

Mike Bonner bonnmike at gmail.com
Thu Jan 5 11:39:47 EST 2012


If you decide to try a regex again (they give me headaches but sometimes
work great) you could try the following.

on mouseUp
   put "sfgsfg gsfgs g 05/01/2011 t trtr" into FULLTEXT
   put "(\d{1,2}\/\d{1,2}\/\d{2,4})" into MYSTRYNG
   put matchText(FULLTEXT,MYSTRYNG,VAR0) into MYRESULT
   put VAR0
end mouseUp

On Thu, Jan 5, 2012 at 9:03 AM, Peter M. Brigham, MD <pmbrig at gmail.com>wrote:

> I too am much in favor of using LC's text parsing rather than RegEx, which
> I admit is a prejudice (but one with foundation!). Beware, however, that
> the "is a date" function will return true for any number. I usually
> double-check this with something like:
>
> put "sfgsfg gsfgs g 05/01/2011 t trtr" into tText
> repeat for each word tWord in tText
>   if tWord is a date then
>      if howmany("/",tText) = 2 then
>         put tWord & cr after tFound
>      end if
>   end if
> end repeat
> put tFound
>
> function howmany targetString,tText
>   put numtochar(8) into divChar
>   replace targetString with divChar in tText
>   set the itemdelimiter to divChar
>   put the number of items of tText into h
>   if char -1 of tText <> divChar then put h-1 into h
>   return h
> end howmany
>
> -- Peter
>
> Peter M. Brigham
> pmbrig at gmail.com
> http://home.comcast.net/~pmbrig
>
>
> On Jan 5, 2012, at 5:23 AM, Bernard Devlin wrote:
>
> > I just want to offer the simplest solution first.  If there's a reason
> > why this won't work, please say.
> >
> > put "sfgsfg gsfgs g 05/01/2011 t trtr" into tText
> > repeat for each word tWord in tText
> > if tWord is a date then put tWord & cr after tFound
> > end repeat
> > put tFound
> >
> > Maybe you are just looking to exeriment with regular expressions.  But
> > given your sample text and date format, the above works and will be
> > readily readable when you return to in 6 months.
> >
> > Bernard
> >
> > On Thu, Jan 5, 2012 at 8:59 AM, paolo mazza <mazzapaoloitaly at gmail.com>
> wrote:
> >> Hi All,
> >> I have to find the date in a text. If I use this Regular Expression,
> >> it finds the date (returns true) but it returns just the first chars
> >> of the date..
> >>
> >> on mouseUp
> >>   put "sfgsfg gsfgs g 05/01/2011 t trtr" into FULLTEXT
> >>   put "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))" into MYSTRYNG
> >>   put matchText(FULLTEXT,MYSTRYNG,VAR0) into MYRESULT
> >>   put matchChunk(FULLTEXT,MYSTRYNG,VAR1, VAR2) into MYRESULT2
> >>   put MYRESULT && MYRESULT2 && VAR0 && VAR1 && VAR2
> >> end mouseUp
> >>
> >> It returns  "true true 05 16 17" instead of "true true 05/01/2011 16 25"
> >>
> >>
> >> then if I change the text to search ...
> >>
> >> on mouseUp
> >>   put "sfgsfg gsfgs g 4/1/2011 t trtr" into FULLTEXT
> >>   put "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))" into MYSTRYNG
> >>   put matchText(FULLTEXT,MYSTRYNG,VAR0) into MYRESULT
> >>   put matchChunk(FULLTEXT,MYSTRYNG,VAR1, VAR2) into MYRESULT2
> >>   put MYRESULT && MYRESULT2 && VAR0 && VAR1 && VAR2
> >> end mouseUp
> >>
> >> It returns  "true true 4 16 16" instead of "true true 4/1/2011 16 24"
> >>
> >>
> >> Why ? Any idea?
> >>
> >> All the best,
> >>
> >> Paolo Mazza
> >>
> >> _______________________________________________
> >> use-livecode mailing list
> >> use-livecode at lists.runrev.com
> >> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> >> http://lists.runrev.com/mailman/listinfo/use-livecode
> >
> > _______________________________________________
> > use-livecode mailing list
> > use-livecode at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the use-livecode mailing list