Parentheses capture - anything that matches a parenthesized portion of a regular expression is returned as part of the result of the match:
user=> (re-seq #"a(.)c" "abc") (["abc" "b"]) If you don't want that behavior, you can use the special non-capturing syntax, (?:...): user=> (re-seq #"a(?:.)c" "abc") ("abc") You don't have to escape pipes or any other special characters inside a character class (that is, between [...]), because characters lose their special meanings there: [.*] matches either a period or an asterisk and has no relationship to the "any character" symbol or "zero or more" repetition operator. The only special things inside a character class are a leading '^', which negates the class, and a '-' in the middle, which makes a range: [^a-z] matches any single character that is not a lowercase letter (of the English alphabet). Position matters: [-^] matches a literal hyphen or caret, and [] is not an empty character class but a syntax error (an unclosed character class that so far includes a literal ']' character). On Tue, Mar 30, 2010 at 12:37 PM, Glen Rubin <rubing...@gmail.com> wrote: > The result is a little bit strange still, since I am getting > dupliates. First, it returns the string I want > > 49|00|12 .... 12|a9|a4|ff > > but then it also returns the same string without the first and last 4 > characters, e.g. > > 12|....12|a9| > > Also, how come I don't need to escape the | inside the parenthesis? > > thanks Meikel!! > > > On Mar 30, 10:59 am, Meikel Brandmeyer <m...@kotka.de> wrote: >> Hi, >> >> you have to escape the |. >> >> user=> (re-seq #"49\|00\|([0-9a-f|]+)\|a4\|ff" "a5|a5|49|23|49|00|12| >> fc|5e|a4|ff|a7|49|00|ee|d3|a4|ff|ae") >> (["49|00|12|fc|5e|a4|ff|a7|49|00|ee|d3|a4|ff" "12|fc|5e|a4|ff|a7|49|00| >> ee|d3"]) >> >> However this will be greedy... >> >> Sincerely >> Meikel > > -- > 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 > > To unsubscribe from this group, send email to > clojure+unsubscribegooglegroups.com or reply to this email with the words > "REMOVE ME" as the subject. > -- Mark J. Reed <markjr...@gmail.com> -- 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 To unsubscribe from this group, send email to clojure+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.