Forum: Ruby-core [ruby-trunk - Bug #8001][Open] 2.0 Regexp \Z matches where it shouldn't

Posted by Josh Cheek (josh-cheek)
on 2013-03-02 10:50
(Received via mailing list)
Issue #8001 has been reported by josh.cheek (Josh Cheek).

----------------------------------------
Bug #8001: 2.0 Regexp \Z matches where it shouldn't
https://bugs.ruby-lang.org/issues/8001

Author: josh.cheek (Josh Cheek)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) 
[x86_64-darwin12.2.0]


(({for ruby in ~/.rbenv/versions/{1.9.3-p327,2.0.0-p0}/bin/ruby
do
  "$ruby" -v
  "$ruby" -e 'p /x.*?\Z$/ =~ "x\ny"'
done
}))

In Ruby 1.9: nil
In Ruby 2.0: 0

If you remove the "y" from the string, or add more, then they do the 
same thing.
The temporary solution I'm using to get around this is to replace `\Z` 
with `\n\z`
Posted by Josh Cheek (josh-cheek)
on 2013-03-02 10:50
(Received via mailing list)
Issue #8001 has been updated by josh.cheek (Josh Cheek).


Pasted version from 1.9, here is my actual output with both versions:

ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0]
nil
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0]
0
----------------------------------------
Bug #8001: 2.0 Regexp \Z matches where it shouldn't
https://bugs.ruby-lang.org/issues/8001#change-37250

Author: josh.cheek (Josh Cheek)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) 
[x86_64-darwin12.2.0]


(({for ruby in ~/.rbenv/versions/{1.9.3-p327,2.0.0-p0}/bin/ruby
do
  "$ruby" -v
  "$ruby" -e 'p /x.*?\Z$/ =~ "x\ny"'
done
}))

In Ruby 1.9: nil
In Ruby 2.0: 0

If you remove the "y" from the string, or add more, then they do the 
same thing.
The temporary solution I'm using to get around this is to replace `\Z` 
with `\n\z`
Posted by Josh Cheek (josh-cheek)
on 2013-03-02 13:22
(Received via mailing list)
Issue #8001 has been updated by josh.cheek (Josh Cheek).


Also realized the regex here ends with \Z$, but can be shown with just 
\Z.

Here is an updated example:

ruby1.9 -v
  # >> ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0]
ruby2 -v
  # >> ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0]

ruby1.9 -e 'p /x.*?\Z/ =~ "x\ny"'
  # >> nil
ruby2 -e 'p /x.*?\Z/ =~ "x\ny"'
  # >> 0
----------------------------------------
Bug #8001: 2.0 Regexp \Z matches where it shouldn't
https://bugs.ruby-lang.org/issues/8001#change-37252

Author: josh.cheek (Josh Cheek)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) 
[x86_64-darwin12.2.0]


(({for ruby in ~/.rbenv/versions/{1.9.3-p327,2.0.0-p0}/bin/ruby
do
  "$ruby" -v
  "$ruby" -e 'p /x.*?\Z$/ =~ "x\ny"'
done
}))

In Ruby 1.9: nil
In Ruby 2.0: 0

If you remove the "y" from the string, or add more, then they do the 
same thing.
The temporary solution I'm using to get around this is to replace `\Z` 
with `\n\z`
Posted by Nobuyoshi Nakada (nobu)
on 2013-03-03 09:17
(Received via mailing list)
Issue #8001 has been updated by nobu (Nobuyoshi Nakada).

Description updated


----------------------------------------
Bug #8001: 2.0 Regexp \Z matches where it shouldn't
https://bugs.ruby-lang.org/issues/8001#change-37272

Author: josh.cheek (Josh Cheek)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) 
[x86_64-darwin12.2.0]


=begin
 for ruby in ~/.rbenv/versions/{1.9.3-p327,2.0.0-p0}/bin/ruby
 do
   "$ruby" -v
   "$ruby" -e 'p /x.*?\Z$/ =~ "x\ny"'
 done

:In Ruby 1.9: (({nil}))
:In Ruby 2.0: (({0}))

If you remove the "y" from the string, or add more, then they do the 
same thing.
The temporary solution I'm using to get around this is to replace 
`(({\Z}))` with `(({\n\z}))`
=end
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.