草庐IT

TDengine替换ES

全部标签

ruby - 用 Ruby 正则表达式中的值替换所有匹配项

我在进行Ruby字符串替换时遇到了问题。我正在为我正在使用的有限语言编写一个预处理器,它本身不支持数组,所以我自己动手。我有一条线:x[0]=x[1]&x[1]=x[2]我想用重新格式化的版本替换每个实例:x__0=x__1&x__1=x__2该行可能在别处包含方括号。我有一个匹配数组用途的正则表达式:array_usage=/(\w+)\[(\d+)\]/但我想不出Ruby构造来逐个替换每个实例。我不能使用.gsub()因为它会匹配行中的每个实例,并将每个数组声明替换为第一个声明。.scan()提示说,如果您尝试在block内使用带有.sub()!的扫描,则字符串正在被修改。如有任何

ruby 正则表达式查找和替换

我有以下输出:时间=15:40:32.81我想删除:和.,这样它看起来像这样:15403281我试着做一个time.gsub(/\:\s/,'')但这没有用。 最佳答案 "15:40:32.81".gsub(/:|\./,"") 关于ruby正则表达式查找和替换,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3515342/

ruby - 分配给数组并替换出现的 nil 值

您好!如下所示,当为数组赋值时,如何将nil替换为0?array=[1,2,3]array[10]=2array#=>[1,2,3,nil,nil,nil,nil,nil,nil,nil,2]如果在分配时不可能,我将如何以最好的方式完成?我想到了array.map{|e|电子零??0:e},但是……谢谢! 最佳答案 赋值后改变数组:array.map!{|x|x||0}请注意,这也会将false转换为0。如果你想在赋值时使用零,会有点乱:i=10a=[1,2,3]a+=([0]*(i-a.size))[1,2,3,0,0,0,0,0

ruby-on-rails - 如何在 Ruby/Rails 中匹配和替换模板标签?

尝试向我的一个Rails模型添加一个非常基本的描述模板。我想要做的是采用这样的模板字符串:template="{{name}}isthebest{{occupation}}in{{city}}."和这样的散列:vals={:name=>"JoeSmith",:occupation=>"birthdayclown",:city=>"LasVegas"}并生成描述。我以为我可以用一个简单的gsub来做到这一点,但Ruby1.8.7不接受散列作为第二个参数。当我像这样将gsub作为block执行时:>template.gsub(/\{\{\s*(\w+)\s*\}\}/){|m|vals[m

ruby-on-rails - 使用 gsub 将特定字符替换为换行符(Ruby、Rails 控制台)

烦人的问题。我试图用换行符(\n)替换模型描述字段中的所有分号字符。数据库是sqlite。该字段是文本类型。如果我在Rails控制台手动执行此操作(使用\n换行符手动键入单个记录的描述),Rails控制台会自动转义\n,并且描述字段会填充\\n.如果我使用gsub以编程方式执行此操作,我会遇到以下情况:>>s=Sample.find(:first)=>...记录的详细信息...>>s.description.gsub!(/;/,"\n")=>...成功-一切看起来都不错,返回值中的新行由\n...表示>>s.save=>true>>reload!Reloading=>true>>s=S

ruby - 同时替换2个字符串?

如何同时替换2个字符串?例如,假设我有这样的字符串:str1="AAAABBBBCCCCDDDD"我想用“CCCC”替换每个“AAAA”,用“AAAA”替换每个“CCCC”,但如果我这样做了:str1.gsub("AAAA","CCCC")#CCCCBBBBCCCCDDDDstr1.gsub("CCCC","AAAA")#AAAABBBBAAAADDDD我希望str1成为“CCCCBBBBAAAADDDD” 最佳答案 一般答案:使用正则表达式匹配AAAA和CCCC,然后分别用CCCC和AAAA替换每个匹配项。编辑以消除混淆str1.

ruby - 在 Ruby 中动态替换对象上的方法实现

我想用用户指定的block替换对象方法的实现。在JavaScript中,这很容易实现:functionFoo(){this.bar=function(x){console.log(x)}}foo=newFoo()foo.bar("baz")foo.bar=function(x){console.error(x)}foo.bar("baz")在C#中也很容易classFoo{publicActionBar{get;set;}publicFoo(){Bar=x=>Console.WriteLine(x);}}varfoo=Foo.new();foo.Bar("baz");foo.Bar=x

ruby - 搜索并替换为 ruby​​ 正则表达式

我在包含HTML的MySQL列中有一个文本blob字段。我必须更改一些标记,所以我想我会在ruby​​脚本中完成。Ruby在这里无关紧要,但很高兴看到它的答案。标记如下所示:foobarmeow我只需要更改第一个foo每个文本block到something_else同时保留字符串的其余部分。似乎无法使用Ruby获得正确的PCRE正则表达式。 最佳答案 #Theregexliteralsyntaxusing%r{...}allows/inyourregexwithoutescapingnew_str=my_str.sub(%r{[^}

ruby - 如何替换 Ruby 中的 for 循环?

在Ruby中,使用for循环是一种糟糕的风格。这是普遍理解的。向我推荐的风格指南:(https://github.com/bbatsov/ruby-style-guide#source-code-layout)说:“永远不要使用for,除非你知道确切的原因。大多数时候应该使用迭代器。for是根据each实现的(因此你添加了一个间接级别),但有一个扭曲-for不会引入新的作用域(与each不同),并且在其block中定义的变量将在其外部可见。”给出的例子是:arr=[1,2,3]#badforeleminarrdoputselemend#goodarr.each{|elem|putsel

ruby - 如何在不转换为不同编码的情况下替换 Ruby 中的 UTF-8 错误?

为了将字符串转换为UTF-8并替换所有编码错误,您可以这样做:str.encode('utf-8',:invalid=>:replace)唯一的问题是如果str已经是UTF-8则它不起作用,在这种情况下仍然存在任何错误:irb>x="foo\x92bar".encode('utf-8',:invalid=>:replace)=>"foo\x92bar"irb>x.valid_encoding?=>false引用RubyDocs:Pleasenotethatconversionfromanencodingenctothesameencodingencisano-op,i.e.therec