草庐IT

ruby - 如何在 Ruby 中使用 RegEx 更改字符串中字母的大小写

假设我有一个字符串:“hEY”我想把它转换成“嘿”string.gsub!(/([a-z])([A-Z]+)/,'\1'.upcase)这是我的想法,但是当我在gsub方法中使用它时,upcase方法似乎什么都不做。这是为什么?编辑:我想出了这个方法:string.gsub!(/([a-z])([A-Z]+)/){|str|str.downcase!.capitalize!}有没有办法在正则表达式中做到这一点?我不太明白'\1''\2'的意思。那是反向引用吗?这是如何工作的 最佳答案 @sawa有简单的答案,你已经用另一种机制编辑了

ruby - 使用 Ruby gsub 转义 linux 路径名中的空格

我正在尝试转义Linux路径中的空格。但是,每当我尝试转义我的反斜杠时,我都会得到一个双斜杠。示例路径:/mnt/drive/site/usa/1201East/1201EastInvoice.pdf所以我可以在Linux中使用它,我想将它转义为:/mnt/drive/site/usa/1201\East/1201\East\Invoice.pdf所以我正在尝试:backup_item.gsub("\s","\\\s")但是我得到了意想不到的输出/mnt/drive/site/usa/1201\\East/1201\\East\\Invoice.pdf 最佳

ruby - 从 Ruby 中的字符串中删除所有空格

如何在Ruby中删除字符串中的所有换行符和空格?例如,如果我们有一个字符串:"123\n12312313\n\n123123112311"应该变成这样:"12312312313123123112311"也就是说,应该删除所有空格。 最佳答案 你可以使用类似的东西:var_name.gsub!(/\s+/,'')或者,如果你想返回改变后的字符串,而不是修改变量,var_name.gsub(/\s+/,'')这还可以让您将它与其他方法链接起来(即something_else=var_name.gsub(...).to_i去除空格,然后将

ruby - 在 Ruby 中替换 ' with\'?

我正在尝试弄清楚如何用\'之类的内容替换'之类的引号。我该怎么做?我试过了"'".gsub("'","\\'")但它只是给出一个空字符串。我在这里做错了什么? 最佳答案 这个怎么样puts"'".gsub("'","\\\\'")\'原因是\'在gsub(正则表达式)中表示post-match并且因此需要使用\\'进行转义和\显然被转义为\\,以\\\\'结尾.例子>>"abcd".gsub("a","\\'")=>"bcdbcd"a替换为a之后的所有内容. 关于ruby-在Ruby中替

Ruby 正则表达式\1 对 gsub 意味着什么

\1是做什么的?例如"foobarbag".gsub(/(bar)/,'car\1')我相信这与您使用括号的方式有关,但我不太确定。有人可以向我解释吗?你能做像\2这样的事情吗?如果是这样,那会做什么? 最佳答案 您在搜索部分用括号括起来的每个项目将对应于替换部分中的一个数字\1、\2等。在您的示例中,只有一个项目被括号包围,即"(bar)"项目,因此您放置\1的任何地方都是括号,将被换入。你可以多次输入\1,如果你想重复找到的项目,这很方便,所以你可以合法地写car\1\1\1和"bar"将交换三次。\2没有用处,因为括号中只有一

ruby - ruby 中字符串中的 gsub ASCII 码字符

我正在使用nokogiri来筛选一些HTML。在某些情况下,我会返回一些奇怪的字符,我已经使用以下代码找到了这些字符的ASCII码:@parser.leads[0].phone_numbers[0].each_bytedo|c|puts"char=#{c}"end相关字符的ASCII代码为194和160。我想在解析时以某种方式去除这些字符。我试过下面的代码,但它不起作用。@parser.leads[0].phone_numbers[0].gsub(/160.chr/,'').gsub(/194.chr/,'')谁能告诉我如何实现这一点? 最佳答案

带有索引/偏移量的 Ruby gsub?

Ruby的String#gsub方法提供了一种包含替换索引的方法?例如,给定以下字符串:Ilikeyou,you,you,andyou.我想以这个输出结束:Ilikeyou1,you2,you3,andyou4.我知道我可以使用\1、\2等来匹配括号中的字符,但是有没有像\i这样的东西或\n提供当前比赛的号码?值得一提的是,我的实际术语不像“你”那么简单,因此假设搜索术语是静态的替代方法是不够的。 最佳答案 我们可以将with_index链接到gsub()以获得:foo='Ilikeyou,you,you,andyou.'.gsub

ruby-on-rails - Ruby gsub 字符串中的多个字符

使用Ruby1.9.3、Rails3.2,我有以下内容:"everygoodboydoesfine".gsub("every","all").gsub("boy","girl").gsub("fine","well")#=>"allgoodgirldoeswell"有没有更好的写法?谢谢。 最佳答案 String#gsub和Hash#fetch将是一个不错的选择。a="everygoodboydoesfine"h={"every"=>"all","boy"=>"girl","fine"=>"well"}a.gsub(/\w+/){|

ruby - 正则表达式删除非字母

我正在尝试从字符串中删除非字母。这样做会吗:c=o.replace(o.gsub!(/\W+/,'')) 最佳答案 只需gsub!就足够了:o.gsub!(/\W+/,'')注意gsub!修改了原始的o对象。此外,如果o不包含任何非单词字符,结果将为nil,因此使用返回值作为修改后的字符串是不可靠的。你可能想要这个:c=o.gsub(/\W+/,'') 关于ruby-正则表达式删除非字母,我们在StackOverflow上找到一个类似的问题: https://

Ruby regex- gsub 存储它匹配的内容吗?

如果我用.gsub(/matchthisregex/,"replace_with_this")gsub是否将它与正则表达式匹配的内容存储在某处?我想在我的替换字符串中使用它匹配的内容。例如像"replace_with_"+matchedregexstring+"this"在我上面的例子中,matchedregexstring是来自gsub的存储匹配吗?抱歉,如果这让我感到困惑,我不知道还能怎么说。 最佳答案 来自finemanual:IfreplacementisaStringitwillbesubstitutedforthemat