https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2011-08-22T13:38:54Z
Ruby Issue Tracking System
Ruby master - Bug #5208: \b and \B don't match properly
https://bugs.ruby-lang.org/issues/5208?journal_id=20350
2011-08-22T13:38:54Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Assigned</i></li><li><strong>Assignee</strong> set to <i>naruse (Yui NARUSE)</i></li></ul><p>チケット登録ありがとうございます。<br>
やり方はこれでバッチリです。</p>
<p>で、本件ですが、</p>
<blockquote>
<p>ruby 1.9.2では、\wがマルチバイト文字にマッチしないように鬼車を修正していたと思いますが、<br>
\b, \Bについては\w, \Wに対応するように修正されていないようです。<br>
これって対応する必要あるんですかね。<br>
Ruby では \w とは別に \p{Word} というものを用意しているので、「\b は \p{Word} に従う」でよいかと思っています。</p>
</blockquote>
<p>Perl 5.14の /a /u は興味深いですね。<br>
(?(cond)yes|no) とかも欲しいなぁと思っていたのと、最適化も欲しいので、<br>
いっそ高田さんが Ruby の正規表現エンジンをメンテしてくださるとうれしいなぁと思っていたり。</p>
Ruby master - Bug #5208: \b and \B don't match properly
https://bugs.ruby-lang.org/issues/5208?journal_id=20354
2011-08-23T00:33:49Z
k_takata (Ken Takata)
<ul></ul><blockquote>
<p>Ruby では \w とは別に \p{Word} というものを用意しているので、「\b は \p{Word} に従う」でよいかと思っています。</p>
</blockquote>
<p>そういう考えもありましたか。ただ、少なくともPerl 5.14とPython 2.7では、<br>
\b, \B は \w, \W と同期しており、(?u) などに応じて動作が変わります。(\p{Word}は固定)<br>
それ以外の言語ではどうなっているか確認できていません。</p>
<blockquote>
<p>(?(cond)yes|no) とかも欲しいなぁと思っていたのと、最適化も欲しいので、<br>
いっそ高田さんが Ruby の正規表現エンジンをメンテしてくださるとうれしいなぁと思っていたり。</p>
</blockquote>
<p>自分の改造版鬼車(鬼雲)をRubyに取り込んでいただく分には何の問題もないのですが、<br>
Rubyの正規表現エンジン自体をメンテするのは手に負えそうにないです。<br>
(特に、Rubyで独自に変更している部分をどうすべきかが課題。)</p>
<p>なお、Onigmo 5.10.6では以下のような機能が追加されています。<br>
・正規表現<br>
- \K, \R, \X, (?(cond)yes|no), \g<0>, \g<+n>, (?au)<br>
- Perl 5.10互換の名前参照(←Rubyには不要でしょう。)<br>
・Shift_JIS, EUC-JPで、全角アルファベットなどの大文字小文字同一視検索に対応。<br>
・Shift_JIS, EUC-JPで、\p{Han}, \p{Latin}, \p{Greek}, \p{Cyrillic} に対応。<br>
・最適化<br>
- 暗黙のアンカーによる最適化を実装。<br>
- <a href="http://redmine.ruby-lang.org/issues/3568" class="external">http://redmine.ruby-lang.org/issues/3568</a> で無効化された最適化を再度有効化。</p>
<p>・Perl 5.14に比べた制限<br>
- (?(cond)yes|no) の条件に、先読み・戻り読み等が使えない。<br>
- (?|...), \o{nnn} 等は未対応。</p>
Ruby master - Bug #5208: \b and \B don't match properly
https://bugs.ruby-lang.org/issues/5208?journal_id=20582
2011-09-05T18:14:02Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Rejected</i></li></ul><p>Ken Takata wrote:</p>
<blockquote>
<blockquote>
<p>Ruby では \w とは別に \p{Word} というものを用意しているので、「\b は \p{Word} に従う」でよいかと思っています。</p>
</blockquote>
<p>そういう考えもありましたか。ただ、少なくともPerl 5.14とPython 2.7では、<br>
\b, \B は \w, \W と同期しており、(?u) などに応じて動作が変わります。(\p{Word}は固定)<br>
それ以外の言語ではどうなっているか確認できていません。</p>
</blockquote>
<p>考えたんですが 1.9 では現状のままとします。<br>
/u /a が将来取り込まれたらその時に改めて考えましょう。</p>
<blockquote>
<blockquote>
<p>(?(cond)yes|no) とかも欲しいなぁと思っていたのと、最適化も欲しいので、<br>
いっそ高田さんが Ruby の正規表現エンジンをメンテしてくださるとうれしいなぁと思っていたり。</p>
</blockquote>
<p>自分の改造版鬼車(鬼雲)をRubyに取り込んでいただく分には何の問題もないのですが、<br>
Rubyの正規表現エンジン自体をメンテするのは手に負えそうにないです。<br>
(特に、Rubyで独自に変更している部分をどうすべきかが課題。)</p>
</blockquote>
<p>あぁ、確かに不正なバイト列対策とか結構違いますからねぇ、残念です。<br>
わたしも余裕があればマージしたいなぁとも思ってはいるんですが。</p>
Ruby master - Bug #5208: \b and \B don't match properly
https://bugs.ruby-lang.org/issues/5208?journal_id=20723
2011-09-10T22:29:30Z
k_takata (Ken Takata)
<ul></ul><p>今回は見送りという点については仕方ないと思います。</p>
<p>マージについてですが、とりあえずOnigmo 5.11.2とRubyの鬼車をマージしたものを作ってみました。<br>
<a href="https://github.com/k-takata/Onigmo/tree/tmp/ruby-1.9.x" class="external">https://github.com/k-takata/Onigmo/tree/tmp/ruby-1.9.x</a><br>
Rubyのビルド環境は用意していないので、Rubyに組み込んでの確認はできていません。<br>
どなたか組み込んで動作確認していただけると幸いです。</p>
Ruby master - Bug #5208: \b and \B don't match properly
https://bugs.ruby-lang.org/issues/5208?journal_id=23980
2012-02-20T13:48:10Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Rejected</i> to <i>Closed</i></li></ul><p>Fixed by merging Onigmo 5.13.1.</p>