On Wed, Oct 8, 2008 at 8:08 AM, Rich Hickey <[EMAIL PROTECTED]> wrote: > > Will existing Clojure regex (consumer) code need to change, i.e. will > people need to modify their existing #"" literals and if so in what > way?
Yes, many existing #"" literals would have new meaning or become invalid under this proposal. Some patterns wouldn't have to be changed. Here are a couple examples: #"foo" #"(one) *(two)" #"/this.*/that" By far the most common change people would have to make would be to remove doubled back-slashes: old: #"\\w" new: #"\w" old: #"\\(" new: #"\(" old: #"\\bword\\b" new: #"\bword\b" Reading through Clojures string reader and Java's Pattern docs, the only other anomaly I've spotted is if someone was using \b to mean \backspace. With the proposed change, #"\b" means word boundary, so: old: #"\b" new: #"\x08" Most of the time, failing to update your regex literal will result in a valid regex that means something different. Put another way, things that used to match like you wanted will just stop matching. In a few cases (such as #"\\(") what used to be a valid regex will throw an exception at read time, with a detailed error message pointing out the position of the illegal paren. Of course if this change is unacceptable, these proposed rules could be applied to a new dispatch macro. One option would be something like #r/foo/ that would allow your choice of delimiters to further reduce the need for back-slash quoting within the regex. --Chouser --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---