我正在尝试匹配'MN+WI'
URL 末尾的值,例如/foos/MN+WI
. 该模式在 rubular.com 上[a-zA-Z][\+\,]?
产生匹配结果MN+WI
,但在 IRB 中:
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 字母值,由 a 分隔+
)- 不匹配单个或多于 2 个字母的值(例如
ABC
),但保留 2 个字母的值(例如ABC+MN
; keepMN
)