From: Ken Takata <kentkt@...>
Date: 2011-09-10T22:29:31+09:00
Subject: [ruby-dev:44486] [Ruby 1.9 - Bug #5208] \b and \B don't match properly


Issue #5208 has been updated by Ken Takata.


今回は見送りという点については仕方ないと思います。

マージについてですが、とりあえずOnigmo 5.11.2とRubyの鬼車をマージしたものを作ってみました。
https://github.com/k-takata/Onigmo/tree/tmp/ruby-1.9.x
Rubyのビルド環境は用意していないので、Rubyに組み込んでの確認はできていません。
どなたか組み込んで動作確認していただけると幸いです。
----------------------------------------
Bug #5208: \b and \B don't match properly
http://redmine.ruby-lang.org/issues/5208

Author: Ken Takata
Status: Rejected
Priority: Normal
Assignee: Yui NARUSE
Category: 
Target version: 
ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [i386-mswin32]


初めまして、高田と申します。

\b, \Bが正しく単語境界、非単語境界にマッチしていません。
ruby 1.9.2では、\wがマルチバイト文字にマッチしないように鬼車を修正していたと思いますが、
\b, \Bについては\w, \Wに対応するように修正されていないようです。

実行例:
C:\>type x.rb
#! ruby -Ks
p /\B/ =~ "あいうabc"
p $'
p /\b/ =~ "あいうabc"
p $'

C:\>ruby x.rb
1
"いうabc"
0
"あいうabc"

期待する結果:
C:\>ruby x.rb
0
"あいうabc"
3
"abc"


なお、私が公開している鬼車の改造版では、Perl 5.14に合わせて(?au)で\w等の
マルチバイト文字へのマッチを制御できるようにしています。
https://github.com/k-takata/Onigmo


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