今日、私は次の正規表現に出くわし、Ruby がそれで何をするか知りたいと思いました:
> "#a" =~ /^[\W].*+$/
=> 0
> "1a" =~ /^[\W].*+$/
=> nil
この例では、Ruby は+
文字を無視しているようです。それが正しくない場合、それで何をしているのかわかりません。*
はエスケープされておらず、量指定子として使用されているため、量指定子として解釈されていないと思います。Perl/Ruby の正規表現で-
は、特殊文字として解釈できないコンテキストで文字 (たとえば、) が使用されると、リテラルとして扱われることがあります。しかし、この場合、+
左辺値文字列に no がないため、最初の一致が失敗することが予想されます。
これは微妙に正しい+
キャラクターの使い方ですか?上記の動作はバグですか?明らかな何かが欠けていますか?