草庐IT

PREG_REPLACE

全部标签

ruby - :replace,如何用:invalid and :undef args for encoding using CSV.读取?

自ruby​​1.9起,CSV使用可以执行编码的解析器,如果您使用如下方法:::foreach、::open、::read和::readlines。例如:CSV.read('path/to/file',encoding:"windows-1252:UTF-8")尝试读取windows-1252中的文件并返回一个数组使用utf-8编码的字符串。如果字符集之间的编码转换有未定义的字符,它会给出一个Encoding::UndefinedConversionError。String.encode方法有一些很好的参数来处理这个未定义的字符:str=str.encode('UTF-8',无效::r

ruby - 为什么你会 `replace` 而不是将新对象分配给同一个变量?

我正在查看SolitaireCipher中的测验摘要,当我偶然发现这段代码时:deftriple_cuta=@deck.index('A')b=@deck.index('B')a,b=b,aifa>b@deck.replace([@deck[(b+1)..-1],@deck[a..b],@deck[0...a]].flatten)end我不明白为什么有一个单独的方法replace为此。为什么不只执行以下操作?@deck=@deck[(b+1)..-1]+@deck[a..b]+@deck[0...a]当您可以将它们加在一起时,为什么还要麻烦地应用两个单独的方法(replace和flat

ruby-on-rails - 为什么string replace会修改原来的变量值?

9.3我的行为很奇怪,我不明白为什么:s=self.shopify_ps.title=>"Disco(Wholesale)"现在我想要一个新变量,其中包含s.title的内容,但没有“(批发)”部分。所以我做了以下事情:original_title=s.title=>"Disco(Wholesale)"original_title["(Wholesale)"]=""=>""现在如果我这样做:original_title=>"Disco"没关系,但奇怪的是,最后一个字符串替换似乎甚至影响了原始s变量:s.title=>"Disco"我真的无法理解...你能告诉我这里发生了什么吗?s.ti

ruby - 我怎样才能 "replace"通过 ruby​​ include 函数包含的模块

作为HowcanIreverseruby'sincludefunction的跟进,回答得很好,但事实证明我对实际问题的简化并不意味着该解决方案不适用。我现在面临这个问题(为保护身份而更改姓名!):moduleOldFormHelpersdeffooputs"foo"enddefbarputs"bar"endendmoduleHelpersincludeOldFormHelpersend这给了我:Helpers.instance_methods=>["bar","foo"]Helpers.ancestors=>[Helpers,OldFormHelpers]如果不fork,我真的无权修改

ruby - 为什么在 Ruby 中有一个 String#replace?

在浏览ruby​​文档时,我发现了thereplacemethod,但我不知道这种方法的用例是什么。我唯一能想到的是内存管理(如果新字符串的长度小于或等于前一个字符串,则无需重新分配)。有什么想法吗? 最佳答案 如果您想要实现与其他语言中的按引用传递非常相似的功能,那么这个用例就非常适合,在这种情况下可以直接更改变量的值。因此,您可以将一个字符串传递给一个方法,该方法可能会将字符串完全更改为其他内容。但是,您可以通过清空String并将一些新字符串附加到空字符串来以更圆滑的方式实现相同的目的。其他类也有类似的方法(参见Array和H

ruby - preg_quote() 的 Ruby 等价物是什么?

在PHP中,您需要使用preg_quote()来转义字符串中在正则表达式中具有特定含义的所有字符,以允许(例如)preg_match()搜索那些特殊字符。以下代码在Ruby中的等价物是什么?//Thecontentofthisvariableisobtainedfromuserinput,inexample.$search="$var=100";if(preg_match('/'.preg_quote($search,'/').";/i")){//…} 最佳答案 你想要Regexp.escape。str="[...]"re=/#{R

javascript - window.location= 和 window.location.replace() 有什么区别?

这两行有区别吗?varurl="http://www.google.com/";window.location=url;window.location.replace(url); 最佳答案 window.location将一个项目添加到您的历史记录中,您可以(或应该能够)单击“返回”并返回当前页面。window.location.replace替换当前历史记录项,因此您无法返回。见window.location:assign(url):LoadthedocumentattheprovidedURL.replace(url):Repl

javascript - window.location= 和 window.location.replace() 有什么区别?

这两行有区别吗?varurl="http://www.google.com/";window.location=url;window.location.replace(url); 最佳答案 window.location将一个项目添加到您的历史记录中,您可以(或应该能够)单击“返回”并返回当前页面。window.location.replace替换当前历史记录项,因此您无法返回。见window.location:assign(url):LoadthedocumentattheprovidedURL.replace(url):Repl

php - 分隔符不能是字母数字或反斜杠和 preg_match

我有这个代码:$string1="Mynameis'Kate'andimfine";$pattern="Mynameis'(.*)'andimfine";preg_match($pattern,$string1,$matches);echo$matches[1];当我运行它返回这个错误:Warning:preg_match()[function.preg-match]:Delimitermustnotbealphanumericorbackslash 最佳答案 您的模式需要一个分隔符。它应该像这样添加在模式的开头和结尾:$patte

php - 分隔符不能是字母数字或反斜杠和 preg_match

我有这个代码:$string1="Mynameis'Kate'andimfine";$pattern="Mynameis'(.*)'andimfine";preg_match($pattern,$string1,$matches);echo$matches[1];当我运行它返回这个错误:Warning:preg_match()[function.preg-match]:Delimitermustnotbealphanumericorbackslash 最佳答案 您的模式需要一个分隔符。它应该像这样添加在模式的开头和结尾:$patte