[ruby-core:60689] [ruby-trunk - Bug #9517] why not match ?

From: phasis@...
Date: 2014-02-14 02:51:12 UTC
List: ruby-core #60689
Issue #9517 has been updated by Heesob Park.


I think this issue is not a bug.

Because s1 string contains "\n" character, the match fails.
Try with
r = Regexp.new '[\001\002\003]\000(.*?)\xAA' , Regexp::MULTILINE , 'n'

----------------------------------------
Bug #9517: why not match ?
https://bugs.ruby-lang.org/issues/9517#change-45111

* Author: kk kk
* Status: Open
* Priority: Normal
* Assignee: 
* Category: regexp
* Target version: 
* ruby -v: ruby 2.0.0p353 (2013-11-22 revision 43784) [i686-linux]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
```

class String
  def jhex
    self.split(/,|\s+/).map{|x| x.hex}.pack('c*')
  end
end
s  = "01 00 28 09 00 04 02 00 27 AA" .jhex
s1 = "01 00 05 09 00 04 02 00 0A AA" .jhex

s .force_encoding 'ascii-8bit'
s1.force_encoding 'ascii-8bit'

r = Regexp.new '[\001\002\003]\000(.*?)\xAA' , nil , 'n'

s .match(r)   #=> #<MatchData "\x01\x00(\t\x00\x04\x02\x00'\xAA" 1:"(\t\x00\x04\x02\x00'">
s1.match(r)   #=> nil  #why?


```




-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next