Leaving out the parentheses changes the meaning because they group as well as capture. #"a(b|c)d" matches either "abd" or "acd". #"ab|cd" matches either "ab" or "cd".
On Tuesday, March 30, 2010, Glen Rubin <rubing...@gmail.com> wrote: > thx that works great! i guess I can also just leave out the > parenthesis all together. > > but, what if i wanted just the portion inside?? the duplicate I > wanted to get rid of? > > also any way to return the sequence without all those bars or do i > have to use a seperate regex and or filter? > > On Mar 30, 12:52 pm, "Mark J. Reed" <markjr...@gmail.com> wrote: >> Addendum: I highly recommend Jeffrey Friedl's book >> _Mastering_Regular_Expressions_ if you want to learn how to use >> regexes well. There are also a number of introductions/tutorials >> online, but I'm not familiar enough with them to recommend any. >> >> On Tue, Mar 30, 2010 at 12:50 PM, Mark J. Reed <markjr...@gmail.com> wrote: >> >> >> >> >> >> > 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> >> >> -- >> 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. > -- 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.