(re-pattern "a\nb") returns regexp pattern that contains the newline char literally.
(re-patter "a\\\nb") returns pattern that contains '\n' (two-char sequence). These are not the same. '\n' always matches newline, while literal newline will be ignored if ?x flag is present. => (re-matches (re-pattern "(?x)a\\\nb") "a\nb") "a\nb" => (re-matches (re-pattern "(?x)a\nb") "a\nb") nil => (re-matches #"(?x)a\nb" "a\nb") "a\nb" => (re-matches #"(?x)a b" "a\nb") nil On Thu, 28 Mar 2013 17:08:46 -0700 Mark Engelberg <mark.engelb...@gmail.com> wrote: > I'm in reader hell right now, trying to puzzle out how escape sequences and > printing work for strings and regular expressions. > > I notice that: > (re-pattern "a\nb") > (re-pattern "a\\nb") > (re-pattern "a\\\nb") > > all produce semantically equivalent regular expressions that match "a\nb" > > The middle one prints the way I'd expect, as #"a\nb" > > However, the first and last example print as: > #"a > b" > > Even weirder, printing it with pr has no effect, and it still prints as: > #"a > b" > > I can sort of imagine why the middle one (re-pattern "a\\nb") might be > stored internally in a somewhat different format than the other two, but I > really can't figure out why the "machine-oriented print" of pr would still > print the blank line rather than \n in this context. > > Bug or feature? > > Can anyone point me to the relevant code where I can get a better > understanding of how the reading and printing of regexps differs from > strings? > > --Mark > -- Mikhail -- -- 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 Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.