草庐IT

Java正则表达式得到不匹配的部分

全部标签

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 继承 - super 初始化得到错误数量的参数

我正在使用Ruby并学习OO技术和继承,我终于遇到了一个困扰了我一段时间的错误。人物类classPersonattr_accessor:fname,:lname,:agedefhas_hat?@hatenddefhas_hat=(x)@hat=xenddefinitialize(fname,lname,age,hat)@fname=fname@lname=lname@age=age@hat=hatenddefto_shat_indicator=@hat?"does":"doesn't"@fname+""+@lname+"is"+@age.to_s+"year(s)oldand"+hat

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-on-rails - 如何在 Ruby on Rails 中实现特定于部分的导航?

我有一个Ruby/Rails应用程序,它有两个或三个主要“部分”。当用户访问该部分时,我希望显示一些子导航。所有三个部分都使用相同的布局,因此我无法将导航“硬编码”到布局中。我可以想到几种不同的方法来做到这一点。我想为了帮助人们投票,我会把它们作为答案。还有其他想法吗?或者你投票给什么? 最佳答案 假设每个部分都有自己的Controller,您可以使用partials轻松地做到这一点。假设您有三个部分,分别称为Posts、Users和Admin,每个部分都有自己的Controller:PostsController、UsersCon

ruby-on-rails - Rails 中的匹配和路由

我生成了一个Controller并更改了路由,但打开链接会在我的本地服务器上产生错误。生成Controller和路由railsgeneratecontrollerStaticPageshomeaboutteamcontact改变路线.rbMyApp::Application.routes.drawdorootto:'static_pages#home'match'/about',to:'static_pages#about'match'/team',to:'static_pages#team'match'/contact',to:'static_pages#contact'end根路径

ruby - 在 Ruby 中,如何删除字符串中的所有字符直到子字符串匹配?

假设我有一个字符串:嘿,怎么了@dude,@how'sitgoing?我想删除所有@how's之前的字符。 最佳答案 或使用正则表达式:str="Heywhat'sup@dude,@how'sitgoing?"str.gsub!(/.*?(?=@how)/im,"")#=>"@how'sitgoing?"您可以在here阅读有关环视的信息 关于ruby-在Ruby中,如何删除字符串中的所有字符直到子字符串匹配?,我们在StackOverflow上找到一个类似的问题:

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-on-rails - 在 Ruby on Rails 中查找未使用的 View /部分

我目前正在从事一个大型的RubyonRails项目。它已经足够老,也足够大,以至于不清楚是否所有View都在实际使用中。有没有可以生成未使用View文件列表的脚本/插件? 最佳答案 我写了一个脚本来查找未使用的部分/View。不过,我假设“未使用”意味着存在一个View文件,但没有为其定义Controller方法(不再)。该脚本不检查View是否被调用,因为没有从默认路由到它的链接。这会复杂得多。将以下脚本放在应用程序的脚本文件夹中:#!/usr/bin/envrubyrequire'config/environment'(Dir[

ruby-on-rails - 使用 Rails 助手来呈现部分

据我了解,helpers主要用于从一些特定于View的逻辑中清理View。但是在我目前的新项目(遗留应用程序)中,我偶然发现了很多看起来像这样的助手defitempreparerender:partial=>'items/itemlist_summary'end这是正确的吗?对我来说,呈现部分内容似乎是您想在View中执行的操作,因为它不包含任何需要抽象的逻辑。我应该直接内联所有这些助手吗? 最佳答案 渲染部分不属于助手。帮助者应该帮助你做有逻辑的事情。逻辑不属于Controller,除非它是渲染部分并决定是否应显示某些内容的逻辑。

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

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