草庐IT

lambda表达式

全部标签

Ruby:从字符串生成新的正则表达式

有什么方法可以将String转换为Regexp(在Ruby中)?比方说:'example'--->/example/我的目的是动态生成正则表达式。 最佳答案 regexp=Regexp.new(string)或regexp=/#{string}/如果string可能有特殊字符,那么:regexp=Regexp.new(Regexp.escape(string))或regexp=/#{Regexp.escape(string)}/ 关于Ruby:从字符串生成新的正则表达式,我们在Stack

Ruby gsub/正则表达式修饰符?

在哪里可以找到有关gsub修饰符的文档?\a\b\c\1\2\3%a%b%c$1$2%3等等?具体来说,我正在查看这段代码...something.gsub(/%u/,unit)%u是什么? 最佳答案 首先,%u在ruby​​正则表达式中没什么特别的:mixonic@pandora~$irbirb(main):001:0>'%u'.gsub(/%u/,'heyhey')=>"heyhey"Ruby1.8正则表达式的最终文档在RubyDocBundle中:http://ruby-doc.org/docs/ruby-doc-bundle

ruby - 如何在 Ruby 正则表达式中插入变量?

data.to_enum(:scan,/(#entity[0])/i).mapdo|m,|p$`.size如何在正则表达式中使用动态变量?#entity[0]返回一个值,但在上面的语法中,#entity[0]在正则表达式中按字面意义获取。 最佳答案 你想要/#{entity[0]}/i。#{}是在字符串和正则表达式中插入变量的语法。 关于ruby-如何在Ruby正则表达式中插入变量?,我们在StackOverflow上找到一个类似的问题: https://st

ruby 正则表达式 : capture the path of url

我想从任何URL中提取其路径。例如:网址:https://stackoverflow.com/questions/ask路径:questions/ask应该不难:url[/(?:\w{2,}\/).+/]但我认为我使用了错误的模式来“忽略这个”('?:'-不起作用)。什么是正确的方法? 最佳答案 我建议您不要使用正则表达式来执行此操作,而是使用内置的URI库:require'uri'uri=URI::parse('http://stackoverflow.com/questions/ask')putsuri.path#results

ruby - 有没有办法表达 'infinite time' ?

我正在使用Range表示时间范围的类。现在我想要一个表示给定时间后任意点的范围。我试过(DateTime.now..nil),但是Range类不允许不同类的对象是同一范围的端点。(尝试使用此属性创建Range会导致ArgumentError:badvalueforrange。)是否有时间的无穷大等价物,即Time.now+(1.0/0.0)?或者,是否有办法绕过Range类要求其min和max值属于同一类的要求? 最佳答案 可以使用DateTime::Infinity类:future=DateTime.now..DateTime::

ruby - Ruby 1.9 正则表达式是否与上下文无关语法同样强大?

我有这个正则表达式:regex=%r{\A(?a\ga|b\gb|c)\Z}x当我针对多个字符串测试它时,它似乎与上下文无关语法一样强大,因为它正确地处理了递归。regex.match("aaacaaa")#=>#regex.match("aacaa")#=>#regex.match("aabcbaa")#=>#regex.match("aaacaa")#=>nil"FunwithRuby1.9RegularExpressions"有一个例子,他实际上安排了一个正则表达式的所有部分,使其看起来像一个上下文无关的语法,如下所示:sentence=%r{(?cat|dog|gerbil){

ruby - 哪种风格,lambda..should 或 expect..to,更适合在 RSpec 中测试预期?

我看到两种样式都被广泛使用:#1lambda{raise"Boom"}.shouldraise_error和#2expect{raise"Boom"}.toraise_error.我喜欢expect..tomore,因为它读起来更好,并且隐藏了过程的创建。我查看了rspec代码,似乎expect..to是suggested,但是我经常遇到使用lambda..should的库。期望..更新,因此还不是“著名”吗? 最佳答案 expect从rspec-2开始使用,之前必须使用lambda。RSpec“正式”建议使用expect,他们可能

ruby - 使用递归正则表达式(如 perl)在 Ruby 中匹配平衡括号

我一直在寻找一种方法来匹配正则表达式中的平衡括号,并在Perl中找到了一种使用递归正则表达式的方法:my$re;$re=qr{\((?:(?>[^()]+)#Non-parenswithoutbacktracking|(??{$re})#Groupwithmatchingparens)*\)}x;来自perlregularexpressionsite.有没有办法用Ruby或类似的语言做到这一点?更新:对于那些感兴趣的人,这里有一些有趣的链接:Onigurumamanual-来自Sawa的回答。PragmaticProgrammers'Ruby1.9RegularExpressionsS

ruby-on-rails - 需要对 proc 和 lambda 进行令人难忘的解释

我已经尝试阅读有关过程和lambda的内容,但我必须继续重新阅读定义。谁能用清晰易记的方式向我解释一下? 最佳答案 已编辑:在这里阅读了其他好的答案后,我提供以下提炼,可能会节省您一些重读时间:(l)ambda-(L)ocalreturn(L)ooksatthearguments(p)roc-(P)opsyououtofthemethodwhenitreturns.(P)ermitsdifferentarguments爱因斯坦说“......让事情尽可能简单,但不要更简单。”如果他有堆栈溢出,他会把你指向这里:Whatarethed

ruby - ruby 中的正则表达式 - 我可以在不分组的情况下使用括号吗?

我有一个正则表达式:/(somethingcomplexandboring)?(somethingcomplexandinteresting)/我对第二个括号的内容感兴趣;第一个只是为了确保正确匹配(因为无聊的部分可能存在也可能不存在,但如果存在,我会意外地将它与有趣部分的正则表达式匹配)。所以我可以使用$2访问第二个匹配项。但是,为了与我正在使用的其他正则表达式保持一致,我希望$1以某种方式包含第二个括号的内容。可能吗? 最佳答案 使用非捕获组:r=/(?:ab)?(cd)/ 关于ru