Oh, wait, I posted the wrong function. Here's the one I meant:

(defn pr-pattern [pat]
  (pr (re-pattern (.replaceAll (re-matcher (re-pattern "\n")
                                           (.toString pat))
                               "\\\\n"))))


On 1 April 2013 10:00, Michał Marczyk <michal.marc...@gmail.com> wrote:
> On 1 April 2013 07:53, Mark Engelberg <mark.engelb...@gmail.com> wrote:
>> Yeah, my goal is simply to get (re-pattern #"a\nb") to print (or more
>> precisely, pr) as #"a\nb" without affecting the semantics of printing other
>> regular expressions, but that seems to be impossible to achieve.  Sigh...
>
> Could you just preprocess the strings passed to re-pattern (or
> patterns if you're getting those as input) to replace literal newlines
> with escape sequences? I'm assuming you don't care about ?x given the
> result you wish to achieve.
>
> Otherwise, I haven't done much testing on this, but perhaps you could
> see whether it would work for you:
>
> (defn pr-pattern [pat]
>   (print (str "#\""
>               (.replaceAll (re-matcher (re-pattern "\n")
>                                        (.toString pat))
>                            "\\\\n")
>               "\"")))
>
> user=> (pr-pattern (re-pattern "a\nb"))
> #"a\nb"nil
> user=> (pr-pattern #"a\nb")
> #"a\nb"nil
>
> (The nils are of course the return values. There are indeed four
> backslashes in the replacement string literal, since
> Matcher.replaceAll has its own escaping for $ (captured subsequence
> reference when not escaped) and \.)
>
> Cheers,
> Michał

-- 
-- 
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.


Reply via email to