ruby1.9.3对2.0.0的正则表达式负面预测
发布时间:2020-12-16 21:44:55 所属栏目:百科 来源:网络整理
导读:我需要匹配以“bar”结尾但不以“foo”开头的数组成员,并将结果放入新数组中. 查看1.9.3和2.0.0的文档,它们似乎支持使用相同语法的负向前瞻.负面的前瞻工作正如我在ruby 2.0.0中预期的那样,但似乎在ruby 1.9.3中不起作用: ["foo a.bar","b.bar"].grep(/(?!^
我需要匹配以“bar”结尾但不以“foo”开头的数组成员,并将结果放入新数组中.
查看1.9.3和2.0.0的文档,它们似乎支持使用相同语法的负向前瞻.负面的前瞻工作正如我在ruby 2.0.0中预期的那样,但似乎在ruby 1.9.3中不起作用: ["foo a.bar","b.bar"].grep(/(?!^foos).*.bar$/) # => ["b.bar"] (ruby 2.0.0) # => ["foo a.bar","b.bar"] (ruby 1.9.3) 此基础架构上的ruby版本将在4个月内升级,但不能更快地更改版本.我怎样才能在1.9.3中完成这项工作,最好继续在2.0中工作? 解决方法
更好地使用它,看起来更有说服力:
matched = array.grep(/^(?!foos).*.bar$/) 不要以foo开头 这将适用于2.1.1和1.9.3 只有你想看看我做了什么: # ruby-1.9.3-p362 array = ["foo a.bar","b.bar"] # => ["foo a.bar","b.bar"] matched = array.grep(/(?!^foos).*.bar$/) # => ["foo a.bar","b.bar"] matched = array.grep(/^(?!foos).*.bar$/) # => ["b.bar"] matched = array.grep(/(?!^foos).*.bar$/) # => ["foo a.bar","b.bar"] # ruby-2.1.1 array = ["foo a.bar","b.bar"] matched = array.grep(/(?!^foos).*.bar$/) # => ["b.bar"] matched = array.grep(/^(?!foos).*.bar$/) # => ["b.bar"] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |