草庐IT

neutral_split

全部标签

ruby 正则表达式 split 困难,关闭但不完全

我很难在ruby​​中使用正则表达式沿着几个分隔符拆分字符串,这些分隔符是:,/&和这些定界符中的每一个都可以在定界符的两边有任意数量的空格,但每个项目都可以包含一个有效空格。我一直在测试的一个很好的例子是字符串1,2/3and412我想要的是"1,2/3and412".split(regex)=>["1","2","3","412"这几行]我能得到的最接近的是/\s*,|\/|&|and\s*/但这会生成["1","2","3","412"]而不是所需的结果。意识到这非常接近,我可以简单地对每个项目进行所有修剪,但如此接近并且知道它可以完成有点让我发疯。希望有人能帮助我避免疯狂。

ruby-on-rails - 使用 String#split 方法

默认情况下,#split方法的工作方式如下:"id,name,title(first_name,last_name)".split(",")将为您提供以下输出:["id","name","title(first_name","last_name)"]但我想要如下内容:["id","name","title(first_name,last_name)"]因此,我使用以下正则表达式(来自thisanswer)使用split获得所需的输出:"id,name,title(first_name,last_name)".split(/,(?![^(]*\))/)但是,当我再次使用另一个字符串时,这

ruby - String#split 奇怪的行为

这个问题在这里已经有了答案:HowdoIavoidtrailingemptyitemsbeingremovedwhensplittingstrings?(1个回答)Emptystringsatthebeginningandendofsplit[duplicate](2个答案)关闭9年前。我观察到String上的split方法有一个奇怪的行为。"1..2".split('..')#=>['1','2']"1..2".split('..',2)#=>['1','2']"..2".split('..')#=>['','2']"..2".split('..',2)#=>['','2']一切如预

ruby - `String#split!`的一种实现方式

有时我需要这样的方法,它可以改变它自己对象的类。有String#delete!,#downcase!,#encode!,#gsub!,#strip!、#slice!等。它们都试图更改字符串,但结果类仍然是String。我想要一个方法,可以将String转换为Array。一些方法来做到这一点:irb(main):082:0>str="qwerty"=>"qwerty"irb(main):083:0>str.split!"e"=>["qw","rty"]irb(main):084:0>str=>["qw","rty"]这可能吗?也许一些很酷的日本功夫或丑陋的自行车——我希望看到任何解决方案

ruby - 为什么 String#split ("\n") 和 Array#join (' ' ) 比 String#gsub(/\n/, ' ' ) 更快?

我必须从大量字符串中删除所有换行符。在对string.join("\n").split('')与string.gsub(/\n/,'')进行基准测试时,我发现拆分和join方法要快得多,但很难理解为什么。我不明白如何在每次遇到\n时将字符串拆分为数组元素,然后将数组加入一个新字符串可能比扫描并替换每个\n更快与''。sentence=%q[Sedutperspiciatisundeomnisistenatuserrorsitvoluptatemaccusantiumdoloremquelaudantium,totamremaperiam,eaqueipsaquaeabilloinven

arrays - Ruby String Split on "\t"丢失 "\n"

\t尝试拆分此制表符分隔的数据集:17110002126910002538910004010201-0330110581-0330110741-03301200300500(为清楚起见:)171\t1000\t21\t\n269\t1000\t25\t\n389\t1000\t40\t\n1020\t1-03\t30\t1\n1058\t1-03\t30\t1\n1074\t1-03\t30\t1\n200\t300\t\t500\na=text.split(/\n/)a.eachdo|i|u=i.split(/\t/)putsu.sizeend==>3334444\t\n组合似乎去掉

ruby: 优化 => phrase.split(delimiter).collect {|p| p.lstrip.rstrip }

ruby:评估结果与with相同的最优化表达式是什么phrase.split(delimiter).collect{|p|p.lstrip.rstrip} 最佳答案 为清晰起见进行了优化我更喜欢以下内容:phrase.split(delimiter).collect(&:strip)但我认为您想要优化速度。我不知道为什么其他人在猜测。唯一找出更快的方法是对代码进行基准测试。确保调整基准参数-这只是一个示例。require"benchmark"#Adjustparametersbelowforyourtypicalusecase.n=

ruby - 在 Ruby 中为 .split 方法使用多个分隔符

我想通过";"、""和","分隔符在一行中将一个字符串拆分为一个数组。有没有办法不使用正则表达式来做到这一点? 最佳答案 是的。可能,但使用regex。string.split(/[;,]/) 关于ruby-在Ruby中为.split方法使用多个分隔符,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/26146558/

Ruby #split ("") 与字符串上的#chars

在拆分字符串时,Ruby中的#split和#chars有什么区别?"Hello,World".split("")#=>["H","e","l","l","o",",","","W","o","r","l","d"]"Hello,World".chars#=>["H","e","l","l","o",",","","W","o","r","l","d"]它们都返回一个数组,并且都包含空格和标点符号。有没有一种情况更可取? 最佳答案 Whatisthedifferencebetweensplitandchars[...]?string.

c++ - boost::tokenizer 与 boost::split

我正在尝试将每个'^'字符上的c++字符串解析为vector标记。我一直使用boost::split方法,但我现在正在编写性能关键代码,想知道哪一个能提供更好的性能。例如:stringmessage="A^B^C^D";vectortokens;boost::split(tokens,message,boost::is_any_of("^"));对比boost::char_separatorsep("^");boost::tokenizer>tokens(text,sep);哪一个会提供更好的性能,为什么? 最佳答案 最佳选择取决于