草庐IT

ruby - 从 Ruby 字符串中删除除字母和数字以外的所有字符

我在表单中有一个字符串输入字段。我在paramshash中得到了那个值。我应该如何从该字符串中删除除字母和数字之外的所有字符。 最佳答案 只是为了提醒人们好的'oltr:asdf.tr('^A-Za-z0-9','')找到字符范围的补码并将字符转换为''。我很好奇使用\W字符类是否比范围和gsub与tr更快:require'benchmark'asdf=[('A'..'z').to_a,('0'..'9').to_a].joinputsasdfputsasdf.tr('^A-Za-z0-9','')putsasdf.gsub(/[\

Ruby 匹配第一次出现的字符串以进行 gsub 替换

我有一个字符串让我们说http://someUrul.com/someController/SOmeAction?SomeQS=http://someOtherUrl我想用https替换第一个http,但不是第二个,所以我最终得到https://someUrul.com/someController/SOmeAction?SomeQS=http://someOtherUrl如何使用简单的gsub完成此操作?以下内容替换了两者。request.url.gsub(/http:/,"https:") 最佳答案 使用sub,不是gsub.g

Ruby 帖子标题 slug

我应该如何将帖子标题转换为Ruby中的slug?标题可以有任何字符,但我只希望slug允许[a-z0-9-_](它应该允许任何其他字符吗?)。所以基本上:小写所有字母将空格转换为连字符删除多余的字符 最佳答案 这是Rails吗?(适用于Sinatra)string.parameterize就是这样。有关更复杂的重击,请参阅ActsAsUrl.它可以执行以下操作:"rock&roll".to_url=>"rock-and-roll""$12worthofRubypower".to_url=>"12-dollars-worth-of-r

Ruby 多字符串替换

str="Hello☺World☹"预期输出是:"Hello:)World:("我可以这样做:str.gsub("☺",":)").gsub("☹",":("))是否有任何其他方法可以让我在单个函数调用中完成此操作?。像这样的东西:str.gsub(['s1','s2'],['r1','r2']) 最佳答案 从Ruby1.9.2开始,String#gsub接受哈希作为第二个参数,用于替换匹配的键。您可以使用正则表达式来匹配需要替换的子字符串,并为要替换的值传递哈希。像这样:'hello'.gsub(/[eo]/,'e'=>3,'o'

ruby - Ruby 字符串的 gsub 和 sub 方法有什么区别

我今天仔细阅读了String的文档,我看到了:sub方法,这是我以前从未注意到的。我一直在使用:gsub,看起来它们本质上是一样的。谁能向我解释其中的区别?谢谢! 最佳答案 g代表全局,如全局替换(全部):在irb中:>>"hello".sub('l','*')=>"he*lo">>"hello".gsub('l','*')=>"he**o" 关于ruby-Ruby字符串的gsub和sub方法有什么区别,我们在StackOverflow上找到一个类似的问题:

ruby - tr 和 gsub 有什么区别?

我在阅读Ruby文档时对gsub和tr之间的区别感到困惑。两者有什么区别? 最佳答案 使用tr当你想替换(翻译)单个字符时。tr匹配单个字符(不是通过正则表达式),因此字符不需要以相同顺序出现在第一个字符串参数中。当找到一个字符时,它将替换为在第二个字符串参数的相同索引处找到的字符:'abcde'.tr('bda','123')#=>"31c2e"'abcde'.tr('bcd','123')#=>"a123e"使用gsub当您需要使用正则表达式或当您想要替换较长的子字符串时:'abcde'.gsub(/bda/,'123')#=>

javascript - gsub javascript中的字符串

我尝试只从javascript获取域名,即google.comdocument.location.hostname此代码返回www.google.com。我怎样才能只获得google.com?在这种情况下,要么删除www.要么只获取域名(如果javascript中有这样的方法)。 最佳答案 varhost=location.hostname.replace(/www\./g,'');“g”标志用于“全局”,如果您想要真正的“gsub”(替换所有匹配项,而不仅仅是第一个匹配项),则需要它。不过,更好的办法是获得完整的TLD:vartl

ruby-on-rails - Rails 4,将 "\n"替换为 "
",用于 excel 中的 XML 电子表格

我正在编写一个将某些数据导出到特定格式的Excel文档中的应用程序。我正在使用此文档(http://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx#odc_xmlss_x:pagesetup)构建XML电子表格文件到目前为止一切正常。但是为了让它工作,我不得不在几个字段中使用“.html_safe”,这在这种情况下很危险,因为一些导出的字段包含用户输入的数据。基本上,要在excel单元格中换行,您可以使用""而不是通常的\n我目前在我的erb中使用它:(为清晰起见,于2014年8月8日编辑)但是有没有更好的方法来做

ruby - 在 Linux Docker 容器上运行时出现 gsub 编码错误 US-ASCII 中的字节序列无效

我有一个字符串,我正在从"\r\n"转换为"\n"行结束使用:input.gsub(/\r\n?/,"\n")当我在我的Windows主机上运行它时,它工作正常。当我在Linux主机上运行时,在docker容器中,出现此错误:in`gsub':invalidbytesequenceinUS-ASCII(ArgumentError)我正在运行Ruby2.2。 最佳答案 我通过这样做修复了它InvalidbytesequenceinUTF-8(ArgumentError) 关于ruby-在L

用多个字符串的条件代替Ruby String用GSUB替换

我的字符串为“pas”和“with_pas”。我想用空白字符串替换它。现在我正在做以下操作string.gsub("pas","").gsub("with_pas","")在某些情况下,我将字符串作为“PAS”,在其他情况下使用“with_pas”。有一个更好的方法吗?看答案您可以使用当前的方法,但需要更改订单,否则它将无法按预期工作:string.gsub("with_pas","").gsub("pas","")