English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] Str broken
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-09-14 (09:42)
From: Erik de Castro Lopo <ocaml-erikd@m...>
Subject: Re: [Caml-list] Str broken
On 14 Sep 2004 19:26:59 +1000
skaller <skaller@users.sourceforge.net> wrote:

> The Str module seems not to work:
> open Str;;
> let re = "(a\\|b)*abb"
> let cre = regexp re
> let s = "ababababb"
> ;;
> string_match cre s 0
> ;;
> returns false. This is the classic test from the Dragon book.
> Before I post a bug report can someone confirm this result please?
> I'm using: Objective Caml version 3.09+dev0 (2004-07-13)

I'm using 3.07+2 here. The code you posted produced a warning for
me. It seems that for ocaml some extra escaping is required in
comparison with other languages.

Fixing this code:

    open Str ;;

    let re = "\\(a\\|b\\)*abb" ;;
    let cre = regexp re ;;
    let s = "ababababb" ;;

    if string_match cre s 0 then print_endline "true"
    else print_endline "false" ;;

prints "true" for me.

  Erik de Castro Lopo  nospam@mega-nerd.com (Yes it's valid)
"Debugging is twice as hard as writing the code in the first place.
 Therefore, if you write the code as cleverly as possible, you are,
 by definition, not smart enough to debug it."
--Brian Kernighan

To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners