On Tue, 15 Apr 2014 23:09:46 -0400 "David T. Pierson" <d...@mindstory.com> wrote:
> On Tue, Apr 15, 2014 at 09:09:00PM +0200, Manfred Lotz wrote: > > -> (count-substring "[\\[]" "a[rts[a3]") > > 2 > > -> (count-substring "[a-z\\[]" "a[rts[a3]") > > 7 > > -> (count-substring "[\\]]" "a[rts[a3]") > > 0 > > > > The first two seem to work fine, the last one doesn't. > > Those backslashes are not escaping the brackets, they are part of the > bracketed expressions. > > > (count-substring "[\\[]" "\\[") > 2 > > In your third example above, the regex specifies a pattern consisting > of a backslash (bracketed by itself) followed by a closing square > bracket. That pattern is not matched above, but here it is: > > > (count-substring "[\\]]" "\\]") > 1 > > To use a ] in a bracketed expression, place it first. To use a -, > place it first or last. A [ in a bracketed expression can go > anywhere: > > > (count-substring "[][-]" "-[]") > 3 > >From above it seems I have basically two options to handle arbitrary strings to fit in a character class. 1. i have to watch out for ] and -. If found I have to put them at first resp. last place and in the middle I have just the other characters of my string. 2. I enclose each character with brackets and connect them with |. Perhaps I will do 1. -- Thanks, Manfred ____________________ Racket Users list: http://lists.racket-lang.org/users