From: Koji Arai Date: 2001-08-19T03:18:49+09:00 Subject: [ruby-list:30978] Re: why does the /\1/ match "foo" 新井です。 In message "[ruby-list:30977] Re: why does the /\1/ match "foo"" on 19 Aug 2001 03:07:17 +0900, Koji Arai wrote: > 新井です。 > > || * regex.c (re_match): backreferences corresponding to > > || unclosed/unmatched parentheses should fail always. > > > > こっちは「対応する括弧がない、または閉じてないバックリファレ > > ンスは失敗とする」です。 > > もう少し教えてください。 > > p /(a/ > > とかは1.6.3でもエラーですよね?こういう意味ではないのですよね? あっ、ちょっとわかりました。以前は p /(foo)\2/ =~ "foo\002" p /(foo)\2/ =~ "foo\002" => ruby 1.6.3 (2001-03-19) [i586-linux] 0 で \2 は対応する括弧がないから \002 と解釈されてたんですね。 (対応する括弧があれば backreference) で、そういう曖昧な解釈 はしなくなったと。 閉じてない括弧というのは p /(foo\1)/ =~ "foo" -:1: warning: ambiguous first argument; make sure ruby 1.6.3 (2001-03-19) [i586-linux] 0 p /(foo\1)/ =~ "foo" でしょうか?で、この正規表現は常にマッチに失敗すると。 -- 新井康司 (Koji Arai)