'MN+WI'
たとえば、URL の末尾にあるような値を照合しようとしています/foos/MN+WI
。このパターンは、 rubular.com では[a-zA-Z][\+\,]?
一致結果を生成しますが、IRB では次のようになります。MN+WI
s="MI+WI"
p="[a-zA-Z]{2}[\+\,]?"
r=Regexp.new(p)
r.match(s) # => #<MatchData "MI+">
Ruby コンソールでの動作は、私が Rails で遭遇したものと一致しています。両者に違いはありますか?正規表現パターンを調整するにはどうすればよいですか?
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]
$ rails -v
Rails 4.0.0
** 編集 **
元のパターンは だったはず[a-zA-Z]{2}[\+\,]?
です。
ルートにこれらのバリエーションのいずれかを認識させ、それをパラメーターに割り当てるために本当に必要なもの:
MN
(働く)mn
(働く)MN+WI
(動作していません)MN+WI+IA
( で区切られた 2 文字の値の任意の数+
)- 1 つまたは 2 文字を超える値には一致しません
ABC
が (例: )、2 文字の値は保持します (例ABC+MN
: keepMN
) 。