你能告诉我通过ruby在my deviceimage中添加内容的方法吗?

if(my_device=='galaxytab210') { image = 'http:image.com'

非常感谢!

===============>>#1 票数:1 已采纳

str = %q|if(my_device=='galaxytab210') { image = 'http:image.com'|
my_device, image = str.scan(/'([^']+)'/).flatten

===============>>#2 票数:1

有趣的是,对某些代码进行基准测试可以发现使用环视而不是捕获组和Array#flatten的效率非常低

编辑注意:修正了Arie指出的代码,捕获+展平方法似乎更有效。 这可能是由于Array操作的速度,它们类似于C代码(因此更简单地建模)它们被写入MRI ruby​​中。

#!/usr/bin/env ruby

require 'benchmark'

str = "if(my_device=='galaxytab210') { image = 'http:image.com'"

def with_lookaround(str)
  str.scan(/(?<=')[^'\s]+(?=')/)
end

def with_flatten(str)
  str.scan(/'([^']+)'/).flatten
end

repetitions = 1_000_000

Benchmark.bm do |bm|
  bm.report('with lookaround') { repetitions.times { with_lookaround(str) } }
  bm.report('with array flatten') { repetitions.times { with_flatten(str) } }
end

__END__

           user     system      total        real
with lookaround  5.140000   0.020000   5.160000 (  5.181926)
with array flatten  4.950000   0.020000   4.970000 (  5.041639)

       user     system      total        real
with lookaround  5.200000   0.020000   5.220000 (  5.281581)
with array flatten  4.680000   0.020000   4.700000 (  4.755978)

  ask by Do Thanh Tung translate from so

未解决问题?本站智能推荐:

2回复

正则表达式红宝石

我需要检查字符串是否以ROT开头,范围在0-26之间,并留有空格。...例如,我的输入必须为ROT12“某些字符串”,其中ROT可以在ROT0-ROT26范围内...知道如何检查ROT与 input.match /^ROT/ 但需要这样的东西 input.match /^ROT[
2回复

红宝石混淆中的正则表达式匹配

任何人都可以向我解释这个吗? 我只需要 在一条线上。 但str[/org-id:\\s+(.+)\\n/]和str.slice(/org-id:\\s+(.+)\\n/)返回"org-id: N/A\\n"和str.scan(/ org-id:\\ s +(。+)\\ n /)
3回复

正则表达式/从红宝石中的字符串中删除斜杠

提前致谢... 我在ruby中使用正则表达式时遇到了一些麻烦,或者找到了从字符串中删除斜杠的方法。 这是我的字符串的样子: 我试图删除反斜杠和斜杠; 我想要这个结果: 我想我错过了一些有逃脱角色的东西,或者谁知道什么! 我试过这个: 这将删除反斜杠,但留下
1回复

红宝石参数化正则表达式

我有一个类似“ {some | words | are | here}”或“ {another | set | of | words}”的字符串 因此,一般而言,字符串由一个大括号,由管道分隔的单词和一个大括号组成。 获取该字符串的所选单词的最有效方法是什么? 我想做这样的事情
2回复

红宝石单字猪拉丁与正则表达式

呼吁红宝石正则表达式大师! 我正在尝试使用正则表达式解决红宝石中的这个问题。 输入将是一个单词。 适用两个条件: 如果以元音[aeiou]开头,则返回单词+'way'。 例如, pig_latin('aye') #=> 'ayeway' 如果以辅音开头,则将单
1回复

红宝石正则表达式不止一次发现模式

目前: 我想要: 如何做到这一点
1回复

红宝石正则表达式替换字符串上的重复匹配

我需要在ruby中解析一个字符串,其中包含id和名称这样的变量,例如{2,Shahar} 。 字符串是这样的: 当我尝试解析它时,正则表达式会跳过第一个}并得到如下内容: 而所需的冲销应为: 我将感谢任何能提供帮助的人。 谢谢沙哈尔
2回复

红宝石正则表达式和多行字符串

我正在使用虾宝石通读60页的计算机生成的pdf报告,其中包含数十个人的财务和人口统计数据。 我面临的挑战是,我希望能够在扫描每行时捕获名称/特殊ID(在同一行上)以及与该人相关的后续行。 使用ruby的字符串扫描方法,我已经能够以这种方式捕获每个匹配返回行的财务信息: 我已经尝试将I
3回复

如何针对红宝石中的正则表达式测试整个字符串?

我如何针对正则表达式使用字符串,以便如果整个字符串匹配(而不是子字符串),它将返回true? 例如: 谢谢。
4回复

如何在一个正则表达式中组合这两个Ruby字符串测试?

我正在尝试在Ruby中编写一个正则表达式,我想查看该字符串是否包含某个单词(例如“string”),后跟括号中的url和链接名称。 现在我正在做: 我在两个条件中的输入都是一个字符串。 在第一个中,我正在检查它是否包含单词“link”,然后我将在括号中包含link和link_na