From: Fred Phillips Date: 2007-07-29T02:01:04+09:00 Subject: Re: Finding un-escaped characters in scan() ------=_Part_12493_19963434.1185642067471 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Excellent, that works like a charm. Thanks. On 28/07/07, Harry Kakueki wrote: > > On 7/28/07, Harry Kakueki wrote: > > On 7/28/07, Fred Phillips wrote: > > > I have a string that looks like this: "test,,\,test". And I'm trying > to > > > count the commas which don't follow a \. But when using scan(/[^\\],/) > it > > > only finds the first comma. I think this is because after scan() has > found a > > > comma without a backslash, it continues from where it left off, and > since > > > there's no character before the next comma, it won't match it. Does > anyone > > > know how to fix it? > > > > > Are you expecting something like this, > > > > str = "test,,,test" > > p str.scan(/,,/) #[",,"] > > > > to give you [",,",",,"] ? > > > > Harry > > If so, > here is one way. > There is probably a more elegant way. > > require 'enumerator' > str = "test,,\\,,,\\,," > str.split(//).each_cons(2){|x|p x[1] if x[0] != "\\" and x[1] == ","} > > Harry > > -- > A Look into Japanese Ruby List in English > http://www.kakueki.com/ > > ------=_Part_12493_19963434.1185642067471--