Re: Comparing Regular Expression pattens for equality?
Thanks guys, Shame that it doesn't work that way. I've worked around it as suggested below. Thomas -- 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.
Re: Comparing Regular Expression pattens for equality?
Clojure re-uses java.util.regex.Pattern objects. This object doesn't override equals method, so object references are always compared. But you can easily get pattern string from compiled pattern and then compare just them: user=> (= (.pattern #"test") (.pattern #"test")) true Dňa streda, 26. februára 2014 12:55:17 UTC+1 Thomas napísal(-a): > > Hi Everyone, > > I am creating some regular expressions programmatically with re-pattern. > In order to avoid creating the same regex pattern again I want to check if > it already exists. But comparing regex pattern doesn't seem to be work: > > user=> (= #"test" #"test") > false > user=> (identical? #"test" #"test") > false > > Not surprised that identical? doesn't work to be honest, but "=" should > have worked IMHO > > Is there a way to do this? > > TIA > > Thomas > -- 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.
Re: Comparing Regular Expression pattens for equality?
You can compare the output of the .pattern or .toString methods if all you care about is finding regexes made from the exact same patterns. There's no simple way to detect equivalent regexes made from different patterns, though. As for why = doesn't do this, you'd have to talk to the Java folks about that (since Clojure's = just calls .equals on Java objects). I suspect it has to do with the problem of equivalent patterns. On Feb 26, 2014, at 05:55 , Thomas wrote: > Hi Everyone, > > I am creating some regular expressions programmatically with re-pattern. In > order to avoid creating the same regex pattern again I want to check if it > already exists. But comparing regex pattern doesn't seem to be work: > > user=> (= #"test" #"test") > false > user=> (identical? #"test" #"test") > false > > Not surprised that identical? doesn't work to be honest, but "=" should have > worked IMHO > > Is there a way to do this? > > TIA > > Thomas > > -- > 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. -- 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.